#spring-security #struts2
#java #spring #spring-безопасность #struts2 #сопоставление действий
Вопрос:
Я хочу реализовать Spring Security Struts2
У меня возникла проблема при выполнении моего проекта :
Для пространства имен [/] и имени действия [j_spring_security_check], связанного с контекстным путем [/Project], нет действия с именем ‘j_spring_security_check’ в struts.xml
Как я могу это решить? Это код для 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>
Ответ №1:
Действие формы должно быть обработано spring security перед фильтром struts. Убедитесь, что порядок фильтров следующий
<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>