saw*_*303 8 spring spring-security
我试图让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>
Run Code Online (Sandbox Code Playgroud)
在运行时,Spring'神奇地'创建了一个org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor但不连接我的实例,runAsManager因此使用NullRunAsManager默认创建的实例.
你能告诉我一个有效的Spring Security 3.1示例演示如何运行和使用JSR-250注释@RunAs吗?
实际上你可以使用 Spring Security XML 命名空间来设置RunAsManager:
<sec:global-method-security run-as-manager-ref="runAsManager">
<!-- Rest of your code -->
</sec:global-method-security>
Run Code Online (Sandbox Code Playgroud)
我不知道有任何开箱即用的集成@RunAs。但我确信可以自己实现并与 Spring Security 集成。
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |