Я бы хотел добавить (временную для демонстрации) базовую аутентификацию перед показом веб-сайта. Таким образом, пользователь может ввести некоторые учетные данные, такие как demo/demo
, чтобы открыть веб-сайт, и после этого использовать обычную проверку подлинности form-login
. Я стараюсь добавить это http
перед обычной регистрацией формы.Весенняя безопасность: базовая аутентификация перед регистрацией формы
<http pattern="/**" use-expressions="true" authentication-manager-ref="basicAuthManager">
<intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
<http-basic />
</http>
<http auto-config="true" use-expressions="true">
...
<form-login .../>
</http>
Но у меня есть исключение:
A universal match pattern ('/**') is defined before other patterns in the filter chain,
causing them to be ignored. Please check the ordering in your <security:http>
namespace or FilterChainProxy bean configuration
Кажется, я не могу использовать pattern="/**"
дважды?
Можно ли делать то, что я хочу?
Кроме того, после успешной базовой проверки подлинности мне не нужно устанавливать принципал в контексте безопасности.
Это, как я начал с, но у меня был точно такой же проблемы, как здесь: http://stackoverflow.com/questions/22198729/tomcat-authentication-and-spring-security – Alex
Проблема с этим вопросом заключается в том, что используется 'auto-config'. Это автоматически регистрирует компоненты обработки «http-basic». Таким образом, Tomcat и Spring Security пытались интерпретировать заголовок «Авторизация». Пожалуйста, обратитесь к [официальной документации по этой функции] (http://docs.spring.io/spring-security/site/docs/3.1.x/reference/ns-config.html#ns-auto-config). –