2012-11-13 14 views
8

Próbuję uruchomić funkcję Run-As w Spring Security 3.1. Dziwne jest to, że nie mogę znaleźć jednego przykładu. Nawet Spring Security Book nie obejmuje w ogóle tematu.Spring Security 3.1 Run-As

Oto część zabezpieczeń kontekstu aplikacji.

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

przy starcie wiosny „magicznie” tworzy instancję org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor ale nie podłączać moją runAsManager i dlatego używa NullRunAsManager, który jest tworzony domyślnie.

Czy możesz pokazać mi poprawny przykład Spring Security 3.1, który demonstruje uruchamianie i używanie adnotacji JSR-250, takich jak @RunAs?

+1

Byłem zdziwiony brakiem przykładów, więc jakiś czas temu napisałem sobie szczegółową: https://dzone.com/articles/spring-security-run-example – kaqqao

Odpowiedz

3

Właściwie można użyć Wiosna zabezpieczeń nazw XML ustawić RunAsManager:

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

ja nie znam żadnego @RunAs integracji out-of-box. Ale jestem pewien, że można to samemu wdrożyć i zintegrować z Spring Security.

Powiązane problemy