На самом деле вам не нужно разрешение на страницу входа:
Вне вашего http tag
, добавьте это
<http security="none" pattern="/login" />
и удалите
<intercept-url pattern="/login**" access="permitAll" />
Это относится к тем случаям, когда вы тоже хотите загружать файлы CSS / JS
Ваш файл будет выглядеть следующим образом, например:
<http security="none" pattern="/login" />
<http security="none" pattern="/layout/**" />
<http security="none" pattern="/min/**" />
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/rest/v3/**" access="permitAll" />
<intercept-url pattern="/password/**" access="permitAll" />
<intercept-url pattern="/register/**" access="permitAll" />
<intercept-url pattern="/unsubscribe/**" access="permitAll" />
<intercept-url pattern="/**" access="isFullyAuthenticated()"/>
<form-login login-page="/login" default-target-url="/"
authentication-failure-url="/login?error" username-parameter="username"
password-parameter="password" />
<logout logout-success-url="/login?logout" invalidate-session="false" />
<!-- enable csrf protection
<csrf />
-->
<!-- access denied page -->
<access-denied-handler error-page="/403" />
<logout delete-cookies="JSESSIONID"/>
<remember-me key="myAppKey" />
</http>
Справочная документация Spring Security: https://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ns-minimal
3.2.3 Форма и основные параметры входа в систему
Обратите внимание, что вы все еще можете использовать автоконфигурацию. Элемент form-login просто переопределяет настройки по умолчанию. Также обратите внимание, что мы добавили дополнительный элемент intercept-url, чтобы сообщить, что любые запросы на страницу входа должны быть доступны анонимным пользователям [5]. В противном случае запрос будет соответствовать шаблону / **, и сам доступ к странице входа будет невозможен! Это распространенная ошибка конфигурации, которая приводит к бесконечному циклу в приложении. Spring Security выдаст предупреждение в журнале, если ваша страница входа будет защищена. Также можно сделать так, чтобы все запросы, соответствующие определенному шаблону, полностью обходили цепочку фильтров безопасности, определяя отдельный элемент http для шаблона следующим образом: