# Sécurité Spring (ACEGI)

## Présentation

Spring Security est le nouveau nom d'ACEGI. C'est le très connu framework de sécurité des applications J2EE.

Spring Security fournit un mécansime de `pre-authentification` par défaut qui peut être utilisé pour connecter une application J2EE à LL::NG.

## Configuration

Les informations appropriées se trouvent ici : http://static.springsource.org/spring-security/site/docs/3.0.x/reference/preauth.html

En résumé, pour connecter les utilisateurs vie l'entête HTTP `Auth-User`, utiliser cette configuration de Spring Security :

    <bean id="LemonLDAPNGFilter" class=
    "org.springframework.security.web.authentication.preauth.header.RequestHeaderPreAuthenticatedProcessingFilter">
        <security:custom-filter position="PRE_AUTH_FILTER" />
        <property name="principalRequestHeader" value="Auth-User"/>
        <property name="authenticationManager" ref="authenticationManager" />
    </bean>

    <bean id="preauthAuthProvider" class="org.springframework.security.web.authentication.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>

    <security:authentication-manager alias="authenticationManager" />