【问题标题】:Implementing Spring Security with Struts 2使用 Struts 2 实现 Spring Security
【发布时间】:2015-08-20 21:25:48
【问题描述】:
我要实现Spring Security + Struts2
我在执行项目时遇到了问题:
没有为命名空间 [/] 映射的操作和与上下文路径关联的操作名称 [j_spring_security_check] [/Project]
因为 struts.xml 中没有名为 'j_spring_security_check' 的操作
我该如何解决这个问题?这是Login.jsp的代码
Login.jsp
<form action="/j_spring_security_check" method="POST">
<input type="text" placeholder="ID Utilisateur" name="j_username" autofocus>
<input type="password" placeholder="Mot de passe" name="j_password">
<button type="submit"><i class="fa fa-lock"></i> Se Connecter</button>
</form>
【问题讨论】:
标签:
java
spring
spring-security
struts2
action-mapping
【解决方案1】:
表单动作应该在struts过滤器之前由spring security处理。确保过滤器的顺序如下
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>