2012-11-13 19 views
8

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

ここに、私のアプリケーションコンテキストのセキュリティ部分があります。ランタイム春で

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

は「魔法」org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptorのインスタンスを作成しますが、私のrunAsManagerを配線していないため、デフォルトで作成されNullRunAsManagerを使用しています。

@RunAsなどのJSR-250注釈を使用して実行されていることを示す有効なSpring Security 3.1の例を表示できますか?

+1

例が不足して困惑していたので、もう少し前に詳細な記述を書きました。https://dzone.com/articles/spring-security-run-example – kaqqao

答えて

3

実はあなたはRunAsManagerを設定するには、春のセキュリティXML名前空間を使用することができます。私はすべてのアウトオブボックス@RunAs統合を知らない

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

。しかし、自分で実装してSpring Securityと統合することは可能でしょう。