以编程方式更改属性值

时间:2012-11-02 16:53:17

标签: spring spring-mvc

 <beans:bean id="loginUrlAuthenticationEntryPoint"
            class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint">
    <beans:property name="loginFormUrl" value="/session-timeout-1.do" />
 </beans:bean/> 

我为不同类型的用户提供了2个不同的会话超时页面。用户登录后,在检查用户类型后,该属性的值可能必须从“/session-timeout-1.do”更改为“/session-timeout-2.do”。

我想知道是否有可以在运行时更改属性值的API?

或者是否可以在配置文件中包含变量,例如

<beans:property name="loginFormUrl" value="${time-out-url}">

可以通过编程方式设置变量“time-out-url”吗?

1 个答案:

答案 0 :(得分:0)

您可以继承LoginUrlAuthenticationEntryPoint类并提供自己的逻辑。

请在此处查看课程来源: http://git.springsource.org/spring-security/rwinchs-spring-security/blobs/2d271666a406a4409def9afcd73ea340c40a7a88/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java

特别是方法:

determineUrlToUseForThisRequest

“允许子类修改应适用于给定请求的登录表单URL”。