2010-09-24 23 views
0

J'utilise Spring Security 2 avec Spring MVC. Le conteneur Tomcat que j'utiliserai a déjà le support NTLM et fournira l'accès aux seuls utilisateurs authentifiés, avant de transférer leur nom d'utilisateur dans l'en-tête de la requête.Utilisation de Tomcat NTLM avec Spring Security

J'ai essayé d'écrire un AutenticationEntryPoint personnalisé avec l'idée qu'aucune connexion formulaire/http-basic ne serait nécessaire, puisque l'en-tête de demande contiendrait déjà les ID utilisateur. Mais jusqu'à présent, je n'ai trouvé aucun moyen d'y parvenir.

Toutes les idées et suggestions seraient grandement appréciées.

Merci.

Répondre

1

Regardez Waffle. Peut-être que Waffle lui-même n'est pas ce que vous voulez, mais il a une mise en œuvre de filtre de sécurité de printemps qui est à la fin de ce que vous essayez d'atteindre.

+0

fait, je trouve que la sécurité de printemps a un support natif pour la sécurité pré-authentifié. En particulier, j'ai regardé org.springframework.security.ui.preauth.AbstractPreAuthenticatedProcessingFilter, qui vient avec un certain nombre d'implémentations, dont RequestHeaderPreAuthenticatedProcessingFilter semblait le plus utile. – Aamir

0

En fait, j'ai trouvé que la sécurité de Spring a un support natif pour la sécurité pré-authentifiée. En particulier, j'ai regardé org.springframework.security.ui.preauth.AbstractPreAuthenticatedProcessingFilter, qui vient avec un certain nombre d'implémentations, dont RequestHeaderPreAuthenticatedProcessingFilter semblait le plus utile. Alternativement, on pourrait aussi écrire un filtre personnalisé en étendant le AbstractPreAuthenticatedProcessingFilter. Une fois cela fait, vous devrez également définir un point d'entrée personnalisé dans votre contexte d'application, ainsi que d'autres dépendances requises par Spring Security. Je m'excuse que je suis pressé et que je n'ai pas le temps de le formater correctement. J'espère que cela t'aides.

<bean id="customEntryPoint" 
    class="org.springframework.security.ui.preauth.PreAuthenticatedProcessingFilterEntryPoint" /> 

et ce

<bean id="preauthAuthProvider" 
     class="org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationProvider"> 
    <security:custom-authentication-provider /> 
    <property name="preAuthenticatedUserDetailsService"> 
     <bean id="userDetailsServiceWrapper" 
       class="org.springframework.security.userdetails.UserDetailsByNameServiceWrapper"> 
      <property name="userDetailsService" ref="userDetailsService" /> 
     </bean> 
    </property> 
</bean> 

et ce

<bean id="userDetailsService" class="yourimplementation.CustomUserDetailsService" /> 

et ce

<security:http auto-config="false" 
     access-decision-manager-ref="accessDecisionManager" 
     entry-point-ref="customEntryPoint"> 
    <security:intercept-url pattern="/*" access="permitAll" /> 
</security:http> 
<security:authentication-manager alias="authenticationManager" /> 
Questions connexes