Spring security – Authentification Custom (partie 2)

springsecurity

Ce post fait suite à mon précédent article qui présentait l'ajout d'un paramètre lors de l'authentification via Spring Sécurity. Nous allons voir ici comment gérer une deuxième authentification sur un même projet pour la partie administration.

On reprend la configuration Maven précédente :

<dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-core</artifactId>
 <version>3.1.4.RELEASE</version>
 </dependency>
<dependency>
 <groupId>org.springframework.security</groupId>
 <artifactId>spring-security-core</artifactId>
 <version>3.1.4.RELEASE</version>
 </dependency>
<dependency>
 <groupId>org.springframework.security</groupId>
 <artifactId>spring-security-config</artifactId>
 <version>3.1.4.RELEASE</version>
 </dependency>
<dependency>
 <groupId>org.springframework.security</groupId>
 <artifactId>spring-security-web</artifactId>
 <version>3.1.4.RELEASE</version>
 </dependency>
<dependency>
 <groupId>org.springframework.security</groupId>
 <artifactId>spring-security-taglibs</artifactId>
 <version>3.1.4.RELEASE</version>
 </dependency>

Il faut reprendre la configuration du fichier web.xml qui permet d'utiliser Spring security :

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

 <filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

Ensuite dans votre fichier de configuration de Spring security, il faudra rajouter la sécurisation de notre patch "admin".
Il faut savoir que dans le fichier de Spring Security, il faut sécuriser de la plus petite partie de votre application à la plus grande : il faudra mettre la sécurisation de votre partie administration en premier et la sécurisation du context root de votre application en dernier.

<security:http pattern="/admin/**" use-expressions="true"
 auto-config="true" authentication-manager-ref="adminManager">
 <security:intercept-url pattern="/admin/j_spring_security_check"
 access="permitAll" />
 <security:intercept-url pattern="/admin/login"
 access="permitAll" />
 <security:intercept-url pattern="/img/**"
 access="permitAll" />
 <security:intercept-url pattern="/css/**"
 access="permitAll" />
 <security:intercept-url pattern="/js/**"
 access="permitAll" />
 <security:intercept-url pattern="/admin/**"
 access="hasRole('ROLE_ADMIN')" />
 <security:form-login login-page="/admin/login"
 login-processing-url="/admin/j_spring_security_check"
 default-target-url="/admin/netapsys"
 always-use-default-target="true" authentication-failure-url="/admin/login" />
 <security:logout logout-success-url="/admin/login"
 invalidate-session="true" logout-url="/admin/logout"
 delete-cookies="JSESSIONID,SPRING_SECURITY_REMEMBER_ME_COOKIE" />
 <security:remember-me key="netapsysadmin"
 token-validity-seconds="864000" />
</security:http>
<security:authentication-manager id="adminManager">
 <security:authentication-provider
 ref="customAdminAuthenticationProvider" />
</security:authentication-manager>

Pour le "customAdminAuthenticationProvider" on rependra le même exemple que pour la partie 1.


					

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.