0

PayloadRootAnnotationMethodEndpointMappingいくつかのインターセプターを持つSpring-WSサービスを使用しています。

<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>

securityIntercetorWss4jSecurityInterceptor迎撃機です。

レベルにあることを除いて、すべてが正常に機能します。(操作)にあるようにsecurityIntercetorします。@Endpoint@PayloadRoot

ユーザーを認証する方法はを使用してUsernameTokenいます。次に、LDAPに反対してロールを取得し、ロールに応じて、ユーザーに操作の実行を許可/禁止します。

このためのすぐに使えるソリューションはないと思います。

だから私の質問はsecurityIntercetor、特定の操作の実行を許可するかどうかを設定に応じて確認できるように、どの操作が呼び出されているかをどのように取得できるかということです。

または多分あなたは他のアイデアを持っています。

ありがとう。

4

1 に答える 1

1

これを行う標準的な方法はありません。

私が行ったことは、別のインターセプターを作成したことです(そして、呼び出されているインターセプターのリストの最初に彼を配置します)。これにより、現在の操作が保存され、Springがセキュリティインターセプターにヒットすると、によって作成されたリクエストスコープのBeanからメソッドを取得します。私の最初のインターセプター。

于 2011-03-23T12:49:11.967 に答える