Я использую Spring MVC 4.1.6 для написания веб-приложения, работающего на Tomcat 6.0.43, с помощью java 6.45. Я использую аутентификацию на основе формы, и я хочу, чтобы все страницы были защищены, за исключением страницы входа и папки ресурсов, содержащей изображения и т. Д. Я уже прочитал ответ How to exclude one url from authorization, но это не работает для меня. Я получаю сообщение об ошибке в моем браузере «HTTP Status 403 - доступ к запрашиваемому ресурсу был отклонен». Я потратил часы, пытаясь понять это без каких-либо успехов. Если у кого-то есть какие-то идеи, они были бы весьма признательны. Ниже приведена соответствующая часть web.xml.Как исключить один URL из авторизации при использовании Spring MVC
<!-- specify which resources are restricted for users -->
<security-constraint>
<web-resource-collection>
<web-resource-name>User</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint><role-name>user</role-name></auth-constraint>
</security-constraint>
<!-- specify which resources are not restricted -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Login</web-resource-name>
<url-pattern>/login</url-pattern>
<url-pattern>/resources/*</url-pattern>
</web-resource-collection>
<!-- no auth-constraint -->
</security-constraint>
<!-- specify all the roles defined for this web app -->
<security-role><role-name>admin</role-name></security-role>
<security-role><role-name>user</role-name> </security-role>
<!-- specify how the user will be authenticatated -->
<form-login-config>
<auth-method>FORM</auth-method>
<form-login-page>/login</form-login-page>
<form-error-page>/login</form-error-page>
</form-login-config>
И, наконец, вот структура папок моего веб-приложения, поскольку она развернута на сервере tomcat.
Я не знаком с этим стилем конфигурации безопасности, но сначала попробуйте поместить строфу «no auth-constraint»; правила безопасности часто применяются на основе найденного первого совпадения. – chrylis