- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试让我的 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
最佳答案
我会检查两件事:
要检查请求分派(dispatch),只需首先在 servlet 容器中确保您的应用程序可访问。意思是,你提到了http://localhost:8080/App/j_spring_security_check .您的应用程序可以通过该 URL 访问吗?是否http://localhost:8080/App显示正确的内容 (HTTP 200)?此外,确保调度程序 servlet 已正确配置。在您提供的教程中,有这一部分:
<!-- Spring Hauptteil -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
如果您没有在您的 web.xml 中提供它,那么您的请求甚至可能在最终通过 spring-security 检查之前无法正确发送。
如果这对您没有帮助,请试试这个。
正在关注 documentation ,最小配置应该足以检查您的设置是否正确。如果您遵循了教程,您可能会犯一些小错误(例如 typeo),这将导致 spring-security 无法正常启动。然后很容易跳过记录器输出中的一些错误信息。我建议您执行以下操作。
如果您得到正确的响应 - 尝试修改配置直到完成。
学习点DelegatingFilterProxy
(在 web.xml 中定义)真正做的是将请求委托(delegate)给由 Spring 的 IoC 管理的其他过滤器。此过滤器是通过安全命名空间在 applicationContext-security 中定义的。如果由于某种原因这不起作用,过滤器将不会被初始化,并且您最终可能会看到 http 404,而不管应用程序的其余部分是否正常启动。
Uffff,很多文字 ;)
关于java - j_spring_security_check 404 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8808207/
我正在开发一个基于 Spring MVC 的 WebApp,我正在使用 Spring Security 来实现身份验证和授权原则。我需要知道我是否可以覆盖 J_Spring_Security_Chec
发送我的登录表单不起作用。发送登录表单时,我收到消息“请求的资源不可用”,该表单使用标准过滤器访问/j_spring_security_check。 我的application-servlet.xml
我有一个 Web 应用程序,我在其中使用 Java 配置来实现 Spring 安全性。问题是,如果我没有明确指定 /j_spring_security_check 作为登录处理 URL,它将失败。我最
我有一个 java spring mvc Web 应用程序,并且我已经使用 spring security 实现了登录部分。我使用的 spring security 版本是3.2.5。我的 sprin
看起来有些过滤器没有添加。我将 Spring security 3.2.0.RELEASE 与 java-config 一起使用。完整项目发布于 GitHubSecurityConfig.java 在
我得到了带有自定义登录表单和自定义 UserDetailsService 的 spring security 4。问题是每次我提交给 j_spring_security_check 它总是会重定向
我正在尝试使用 FilterChainProxy 将 Spring Security 配置从 HTTP 命名空间转换为直接配置。在转换之前,HTTP 命名空间一切正常。但是用FilterChainPr
我正在尝试在 Spring3 中写一些具有安全性的东西。我试图使用默认的登录屏幕,每个人都说 Spring 会为您显示该屏幕。但经过两天的尝试并收到错误: /spring-security-login
我认为解释我的问题的最好方法是使用屏幕截图: imgbin.org/index.php?page=image&id=16564 基本上我正在尝试遵循这个 mkyong 教程 ( http://www.
这是在 eclipse 中使用 spring security 在 Spring web mvc 中登录系统的代码。 web.xml: contextConfigLoca
使用下面的安全配置,向/j_spring_security_check 发出 post 请求会抛出 404 错误。有人可以帮我指出我做错了什么吗? 安全.xml
我是 Spring 框架的菜鸟。 尝试配置应用程序的安全选项。我的(无 xml)安全配置如下: @Configuration @EnableWebSecurity public class Secur
我正在尝试使用 Spring 安全性实现基于表单的身份验证。重定向工作正常:我的主页正常工作,对于 http://localhost:8080/master/admin 我被重定向到登录页面(http
我正在尝试让我的 spring + hibernate + spring-security 和 tiles2 - “HelloWorld”应用程序正常工作,遵循 this guide (不幸的是它是德
我能够让 spring security 一切都与以下一起工作: 我的问题是关于 MyAuthenticationSuccessHandler 类的,在它
这是我的 WebAppInitializer: @Configuration public class WebAppInitializer extends AbstractAnnotationConf
我尝试使用 Spring 制作一个 Web 应用程序,并且有一个页面可以验证用户身份并识别用户的角色。但是登录后,我总是收到 404,然后我查看日志,AuthenticationFilter 甚至无法
我的安全 xml 配置有问题。我无法从本地登录的登录表单中访问用户名和密码(社交登录工作正常) 简而言之:当用户提交登录表单时,首先出现在我的代码中的是 UserDetailService publi
通过 GET 方法向 j_spring_security_check 发出请求时,我遇到了一个奇怪的反复出现的问题。我所有的登录表单都使用 POST 到 j_spring_security 检查来发布
我将 Tomcat 8.5.4 与 myfaces 2.2.10 和 primefaces 5.3 一起使用。当我打开登录屏幕并按下登录按钮时,我的本地服务器工作正常(尝试独立运行它和 eclipse
我是一名优秀的程序员,十分优秀!