【发布时间】:2013-07-11 00:03:15
【问题描述】:
我正在尝试让我的 spring + hibernate + spring-security 和 tiles2 - “HelloWorld”应用程序工作,遵循this guide(不幸的是它是德语)。
我的问题是登录应用程序时收到“404”错误消息。重定向到登录页面按预期工作,但当我点击登录按钮时无法访问“http://localhost:8080/App/j_spring_security_check”。
我的 web.xml 看起来是这样的:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/defs/applicationContext.xml
/WEB-INF/defs/applicationContext-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>
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
applicationContext-security.xml 文件看起来是这样的......
<http use-expressions="true">
<intercept-url pattern="/index.html" access="permitAll" />
<intercept-url pattern="/timeout.html" access="permitAll" />
<intercept-url pattern="/redirect.html" access="permitAll" />
<intercept-url pattern="/media/**" access="permitAll" />
<intercept-url pattern="/includes/**" access="permitAll" />
<intercept-url pattern="/office/**" access="hasRole('ROLE_USER')" />
<intercept-url pattern="/office/admin/**" access="hasRole('ROLE_ADMIN')" />
<form-login login-page="/index.html"
authentication-failure-url="/index.html?login_error=1"
default-target-url='/office/kunden.html'
always-use-default-target='true'
/>
<logout logout-success-url="/index.html" />
<remember-me />
<session-management invalid-session-url="/index.html">
<concurrency-control max-sessions="2" error-if-maximum-exceeded="true" />
</session-management>
</http>
<authentication-manager>
<authentication-provider>
<jdbc-user-service data-source-ref="mysqldataSource"
authorities-by-username-query="select username, authority from benutzer where username = ?"
users-by-username-query="select username, password, enabled from benutzer where username = ?"/>
</authentication-provider>
</authentication-manager>
数据库连接似乎没问题。
如果有人能给我一个提示,我会很高兴,因为我已经做了很多谷歌搜索,但还没有找到解决方案。
我使用 spring 3.1 和 tomcat 7.0.23
【问题讨论】:
-
您的意思是“j_security_check”还是“j_spring_security_check”?你两个都在这里...
-
对不起,这是 j_spring_security_check
-
检查该请求的调试日志输出,并查看 Spring Security 关于处理它的说明。您应该会看到它通过过滤器链的详细报告。
标签: java spring spring-security