2010-09-22 5 views
0

J'ai un seul WAR qui exécute deux servlets. L'un fournit AMF à distance aux clients Flex et autres SOAP/HTTP aux clients du service Web. J'ai actuellement Spring Security configuré pour authentifier les clients Flex en utilisant DaoAuthenticationProvider. Cependant, j'aimerais utiliser une authentification différente pour SOAP/HTTP. Peut-être une authentification de base ou une autre forme.Est-il possible d'utiliser un différent Spring Security AuthenticationProvider dans différentes servlets, même WAR?

Est-ce possible? ou ai-je besoin de deux WAR?

Répondre

1

Je pense que vous rencontrerez des problèmes avec l'instanciation de deux chaînes de filtres de sécurité. Le problème est que l'élément <http> construit une chaîne de filtrage de sécurité avec un nom de bean câblé ("springSecurityFilterChain"). Si vous avez plus d'un élément <http> actif dans les configs print de la webapp, cela risque d'échouer. En théorie, vous pouvez contourner ce problème en n'utilisant pas l'espace de noms SpringSecurity et en configurant les chaînes de filtres «à la main» en utilisant un câblage Spring XML simple des classes SpringSecurity. En pratique, configurer SpringSecurity de cette façon est difficile.

0

Vous pourriez être en mesure de démarrer deux securityChains distincts, je ne sais pas si vous allez rencontrer les problèmes de Stephen.

Si vous filtrez sur deux modèles d'URL différents correspondant aux deux modèles d'URL de servlet, vous devriez pouvoir filtrer de manière appropriée.

<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> 
Questions connexes