2

我正在使用带有名称空间配置的 spring security3.1。如果我在浏览器中输入到上下文路径的 URL,而不是登录页面的完整 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条目以重定向到登录页面,但它似乎不起作用。

4

1 回答 1

3

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

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

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

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

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

于 2012-07-23T20:02:00.870 回答