如何防止Spring Security 2.5重写加载欢迎页面(index.html)

时间:2010-07-08 20:18:22

标签: spring-mvc spring-security

我有一个Spring MVC Web应用程序,我想展示一个简单的欢迎页面(index.html)。在那个页面上,我只想有一个2 href链接:一个用于登录页面,然后使用Spring Security(2.5.6)和Hibernate 3实现,另一个用于新用户的注册页面。

然而,问题是Spring Security每次都会自动加载我的登录页面,并且不会加载index.html页面,我编写了2个链接以转发我登录或注册。我被带到登录页面,工作正常。但是,我永远不会显示我的Web应用程序的初始index.html页面。

任何人都可以了解如何防止Spring Security使用它的登录页面覆盖“欢迎页面”。

非常感谢。

这是我在web.xml中设置的Spring Security:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        WEB-INF/spring-beans.xml 
        WEB-INF/spring-security.xml
    </param-value>
</context-param>

 <filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>

</welcome-file-list>

3 个答案:

答案 0 :(得分:1)

您的web.xml文件没有任何问题,您需要向我们展示您的WEB-INF / spring-security.xml文件。

如果您继续被定向到登录页面,很可能会搞乱拦截网址模式,导致您的欢迎页面被Spring Security捕获,以便在显示之前进一步验证。

这是您在WEB-INF / spring-security.xml文件中找到的intercept-url标记的示例: -

<http auto-config="true" access-denied-page="/accessDenied.jsp">
        <intercept-url pattern="/login.jsp*" filters="none"/>  
        <intercept-url pattern="/admin/searchUsers.do" access="ROLE_ADMIN"  />
        <intercept-url pattern="/**.do" access="ROLE_USER,ROLE_ADMIN"  />
        <form-login authentication-failure-url="/login.jsp?login_error=1" default-target-url="/home.do"/>
        <logout logout-success-url="/home.do"/>
    </http>

答案 1 :(得分:0)

使用

<form-login login-page="/login.jsp" />

答案 2 :(得分:0)

控制器应该处理用户的请求,在您的情况下,没有控制器映射到此URL。当控制器找到时,它会执行一些逻辑并返回视图名称,该名称将用于表示服务器的响应。因此,视图名称转换器仅在控制器之后调用,并且仅用于推导到特定JSP文件的完整路径。

<mvc:view-controller path="/" view-name="index"/>

尝试添加