2010-07-08 91 views
0

我有一个Spring MVC Web应用程序,我想显示一个简单的欢迎页面(index.html)。在那个页面上,我只需要2个href链接:一个将我带入登录页面,然后使用Spring Security(2.5.6)和Hibernate 3实现,另一个用于新用户的注册页面。如何防止Spring Security 2.5重写加载欢迎页面(index.html)

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

任何人都可以阐明如何防止Spring Security通过登录页面覆盖“欢迎页面”。

非常感谢。

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

<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> 

回答

0

使用

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

1

有什么不对您的web.xml文件,你需要向我们展示你的WEB -INF/spring-security.xml文件。

如果您一直定位到登录页面,那么您很可能会搞砸拦截URL模式,导致您的欢迎页面被Spring Security捕获以进行进一步身份验证,然后再进行显示。

这是拦截的URL标记的例子,你会在你发现WEB-INF /弹簧security.xml文件: -

<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> 
+0

LIMC, 非常感谢你指出我的错误。为了可能遇到这个愚蠢的错误,使我今天花费了4个多小时的任何其他人的利益,我意外地在Spring Security部分的一个拦截URL中有index.htm *。 – checkers 2010-07-08 20:59:10

0

控制器应该处理用户的请求,并在你的情况没有控制器映射到这个URL。当控制器找到时,它执行一些逻辑并返回将用于表示服务器响应的视图名称。所以,视图名称翻译器只能在控制器之后调用,并且仅用于推导特定JSP文件的完整路径。

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

尝试添加