Вопрос

У меня есть сервис Spring-WS, используя PayloadRootAnnotationMethodEndpointMapping У этого есть несколько перехватчиков:

<bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping">        
    <property name="interceptors">
        <list>
            <ref local="loggingInterceptor"/>
            <ref local="validatingInterceptor"/>
            <ref local="securityInterceptor"/>
        </list>
    </property>     
</bean>

Мой securityIntercetor это Wss4jSecurityInterceptor перехватчик.

Все работает нормально, за исключением того, что securityIntercetor находится в @Endpoint уровень, я хочу, чтобы это было на @PayloadRoot (Операция).

То, как я аутентифицирую пользователей, использует UsernameToken, Затем я еду против LDAP и получаю роли и в зависимости от роли, которую я хочу разрешить / запретить пользователю выполнить операцию.

Я предполагаю, что нет не из раствора коробки для этого.

Итак, мой вопрос: как в securityIntercetor Могу ли я получить, какую операцию называется, чтобы я мог проверить в зависимости от моих настроек, чтобы разрешить или не выполнить определенную операцию.

Или, может быть, у вас есть другие идеи.

Спасибо.

Это было полезно?

Решение

Там нет стандартного способа сделать это.

То, что я сделал, я создал еще один перехватчик (и сначала размещаю его в списке вызовов перехвата), что бы сохранить текущую операцию, а затем, когда пружина попадает в мою перехватчик безопасности, я получу метод из запроса на вынос, который был создан Мой первый перехватчик.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top