У меня есть веб-приложение, защищенное Spring Security, для которого требуется две отдельные формы входа. Эти две формы входа должны быть полностью независимыми. Я имею в виду разные формы входа, разные пути URL, иметь возможность иметь другой менеджер аутентификации для каждого из них.
Я просмотрел весь Google, и есть некоторые способы сделать это, но я прочитал и вижу некоторые изменения за последние пару недель, чтобы облегчить это в последних версиях кода моментального снимка.
Прежде всего, поскольку эта ошибка завершена SEC-1171, теперь мы можем иметь несколько элементов пространства имен для поддержки нескольких конфигураций цепочки фильтров.
Во-вторых, поскольку эта другая ошибка показывает SEC-1847, теперь мы можем выбрать собственный менеджер проверки подлинности для каждого тэга http.
Проблема заключается в том, что я загрузил, скомпилировал и все, кроме моего xsd, не позволяет мне создавать пользовательский auth-менеджер для каждого тэга http, я также получаю ошибки всякий раз, когда я пытаюсь изменить URL-адрес обработки входа в систему или всякий раз, когда я пытаюсь использовать ключ запоминания для каждой формы входа.
Я начал делать что-то вроде этого:
<!-- Configure realm for administration users -->
<http pattern="/admin/**" auto-config="true" disable-url-rewriting="true" >
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<form-login login-page="/adminLogin.htm" default-target-url="/"
login-processing-url="/loginProcessing"
authentication-failure-url="/adminLogin.htm?error" />
<logout invalidate-session="true" logout-success-url="/" logout-url="/logout" />
<remember-me key="******" user-service-ref="userDetailsService" />
</http>
<!-- Configure realm for standard users -->
<http auto-config="true" disable-url-rewriting="true">
<intercept-url pattern="/user/**" access="ROLE_USER" />
<form-login login-page="/login.htm" default-target-url="/"
login-processing-url="/loginProcessing"
authentication-failure-url="/login.htm?error" />
<logout invalidate-session="true" logout-success-url="/" logout-url="/logout" />
<remember-me key="******" user-service-ref="userDetailsService" />
</http>
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userDetailsService" >
<password-encoder ref="passwordEncoder"/>
</authentication-provider>
<authentication-provider>
<password-encoder ref="passwordEncoder"/>
<user-service>
<user name="ned" password="****" authorities="ROLE_USER" />
<user name="tom" password="****" authorities="ROLE_ADMIN"/>
</user-service>
</authentication-provider>
</authentication-manager>
Я использую последний снимок Spring Security 3.1.
Как я сказал, идеальным было бы иметь возможность иметь две разные формы входа полностью независимыми, используя "новый" способ, который недавно был изменен на этих ошибках.
Кто-нибудь работал с этим или имеет какую-либо идею?
Спасибо заранее.