Возможно ли использовать разные Spring Security AuthenticationProvider в разных сервлетах, один и тот же WAR? - PullRequest
0 голосов
/ 22 сентября 2010

У меня есть одна WAR, которая запускает два сервлета. Один обеспечивает удаленное взаимодействие AMF для клиентов Flex, а другие SOAP / HTTP - для клиентов веб-служб. В настоящее время Spring Security настроен для аутентификации клиентов Flex с использованием DaoAuthenticationProvider. Тем не менее, я хотел бы использовать другую аутентификацию для SOAP / HTTP. Возможно базовая аутентификация или какая-то другая форма.

Возможно ли это? или мне нужны две ВОЙНЫ?

Ответы [ 2 ]

1 голос
/ 22 сентября 2010

Думаю, у вас возникнут проблемы с созданием двух цепочек фильтров безопасности. Проблема заключается в том, что элемент <http> создает цепочку фильтров безопасности с жестко заданным именем компонента («springSecurityFilterChain»). Если у вас есть более одного активного <http> элемента в весенних конфигурациях веб-приложения, это, вероятно, завершится ошибкой.

Теоретически вы можете обойти эту проблему, не используя пространство имен SpringSecurity и конфигурируя цепочки фильтров «вручную», используя простую разводку Spring XML классов SpringSecurity. На практике настроить SpringSecurity таким способом сложно.

0 голосов
/ 28 сентября 2010

Возможно, вы сможете запустить две отдельные цепочки безопасности, я не знаю, столкнетесь ли вы с проблемами, обрисованными Стивеном.Вы должны быть в состоянии фильтровать соответственно.

<filter> 
    <filter-name>flexSpringSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>flexSpringSecurityFilterChain</filter-name> 
    <url-pattern>/messagebroker/*</url-pattern> 
</filter-mapping>

<filter> 
    <filter-name>webSpringSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>webSpringSecurityFilterChain</filter-name> 
    <url-pattern>/web/*</url-pattern> 
</filter-mapping>
...