8

Spring Security 3.1 の Run-As 機能を動作させようとしています。奇妙なことは、私が単一の例を見つけることができないということです. Spring Security Bookでさえ、このトピックをまったくカバーしていません。

これが私のアプリケーション コンテキストのセキュリティ部分です。

<security:global-method-security
        pre-post-annotations="enabled">
    <security:expression-handler ref="customExpressionHandler"/>
</security:global-method-security>

<bean id="runAsManager"
      class="org.springframework.security.access.intercept.RunAsManagerImpl">
    <property name="key" value="my_run_as_password"/>
</bean>

<bean id="runAsAuthenticationProvider"
      class="org.springframework.security.access.intercept.RunAsImplAuthenticationProvider">
    <property name="key" value="my_run_as_password"/>
</bean>
<security:http auto-config="true" create-session="always">
    <security:remember-me key="njc2"/>
    <security:session-management invalid-session-url="/sessionTimeout.html"/>
    <security:intercept-url pattern="/**" access="ROLE_USER"/>
    <security:form-login login-page='/login.html'
                         authentication-success-handler-ref="njcAuthenticationSuccessHandler"
                         authentication-failure-url="/login-failure.html"/>
    <security:logout invalidate-session="true" logout-url="/j_spring_security_logout"
                     logout-success-url="/login.html"/>
</security:http>

実行時に、Spring は '魔法のように' のインスタンスを作成しますがorg.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor、 my を配線しないrunAsManagerためNullRunAsManager、デフォルトで作成された を使用します。

次のような JSR-250 アノテーションを使用して実行することを示す有効な Spring Security 3.1 の例を教えてください@RunAs

4

1 に答える 1

3

実際には、Spring Security XML 名前空間を使用して設定できますRunAsManager

<sec:global-method-security run-as-manager-ref="runAsManager">
     <!-- Rest of your code -->
</sec:global-method-security>

@RunAsすぐに使用できる統合については知りません。しかし、それを自分で実装して、Spring Security と統合することは可能だと確信しています。

于 2012-11-13T19:40:02.893 に答える