2012-07-23 101 views
2

我正在使用具有名称空间配置的spring security3.1。如果我在浏览器中输入上下文路径的URL,而不是登录页面的完整URL,我想重定向到登录页面。弹簧安全3.1-重定向到具有上下文url的登录页面

例如,http://xxx:8080/context/代替http://xxx:8080/context/login.html

我能够用完整的URL http://localhost:8080/context/login.html

我曾尝试下面的代码显示的登录页面:

<http auto-config='true' authentication-manager-ref="authentication-manager" entry-point-ref="authenticationEntryPoint"> 

<beans:bean id="authenticationEntryPoint"  class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint"> 
<beans:property name="loginFormUrl" value="/login.html"/> 
<beans:property name="forceHttps" value="true"/> 
</beans:bean> 


.... 

我为了加入一个LoginUrlAuthenticationEntryPoint进入也重定向到登录页面,但它似乎不工作。

+0

你能解释一下看起来不行吗?你收到一个空白页吗?你是如何配置url模式的? – Ravi 2012-07-23 16:17:39

回答

3

如果添加一些安全约束,标准配置将重定向到登录页面。因此,使用

<http use-expressions="true"> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
</http> 

如果您请求任何URL,您将自动重定向到登录页面。您无需配置AuthenticationEntryPoint

确保您可以在尝试定制事物之前获得基本示例。

另外你的配置无效 - 你只发布了http块的开始元素。如果您仍然无法正常工作,请发布完整的配置以重现您的问题。

+0

正确的格式:如果我不想重定向到注册用户页面,而isAuthenticated()方法将执行。 – JAVAvladuxa 2016-09-16 06:59:06