У моего веб-приложения есть несколько диспетчеров аутентификации (один для API для WEB-доступа). Апи должен иметь только базовый сервис аутентификации - конфигурируется с помощью разметки пружины безопасности, как показано ниже:Spring Security - несколько провайдеров аутентификации
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<security:authentication-manager alias="apiAuthenticationManager">
<security:authentication-provider ref="apiAuthenticationProvider" />
</security:authentication-manager>
<security:authentication-provider >
<security:user-service>
<security:user name="apiadmin" password="password" authorities="ROLE_API_ADMIN" />
<security:user name="apiuser" password="otherpassword" authorities="ROLE_API_USER" />
</security:user-service>
</security:authentication-provider>
...
я не могу, вставлю аутентификацию-провайдер, так как я хочу быть переписываемым на ребенке боб конфиги.
Моя проблема заключается в том, что я не могу определить псевдоним/id элемента security-provider для обеспечения безопасности, чтобы ссылаться на него в диспетчере проверки подлинности. Есть ли простой способ обхода?
Решение:
я наконец-то понял, как это сделать с помощью пространства имен-путь без погружения в обычной фасоли конфигурации :)
<security:user-service id="apiUserDetailsService">
<security:user name="apiadmin" password="password" authorities="ROLE_API_ADMIN" />
<security:user name="apiuser" password="otherpassword" authorities="ROLE_API_USER" />
</security:user-service>
<security:authentication-manager alias="apiAuthenticationManager">
<security:authentication-provider user-service-ref="apiUserDetailsService"/>
</security:authentication-manager>