OAuthRequestFilter (или ContainerRequestFilter) не работает внутри AbstractFeature - "org.apache.cxf.resource.method" имеет значение null - PullRequest
0 голосов
/ 06 февраля 2019

Мы используем CXF 3.x, проект имеет классы MyFeature extends AbstractFeature и `MyFilter расширяет OAuthRequestFilter.

Внутри MyFeature объекта класса MyFilter, созданного как MyFilter myFilter = new MyFilter (classObj);, где classObj является объектомкласса, к которому должен применяться фильтр.

Когда я достигаю конечной точки, она выдает ошибку как 403.

Далее, когда я использую сообщения отладчика и LOG, я узнаю, что внутриВ файле org.apache.cxf.interceptor.security.AbstractAuthorizingInInterceptor (cxf-core версии 3.0.4.redhat-621159) есть функция getTargetMethod, и внутри этого метода оцениваются BindingOperationInfo и m.get("org.apache.cxf.resource.method") null, из-за которых я получаю 403.

Примечание. Мы используем пакет osgi (jboss) в качестве стратегии развертывания.

1 Ответ

0 голосов
/ 06 марта 2019

Фильтры, выполненные JAXRSInInterceptor, находятся в состоянии unmarshal.В этом состоянии org.apache.cxf.resource.method остается null.Я создал перехватчик в состоянии PRE_STREAM, и тогда org.apache.cxf.resource.method дает правильное имя, которое должно быть выполнено.

...