Spring security redirection

Spring security redirection - Java - Programmation

Marsh Posté le 07-08-2015 à 19:23:24    

Bonjour,
 
j'ai introduit le framework Spring Security dans mon travail et ça marche avec les valeurs par défaut (j_spring_security_check j_username et j_password) j'ai essayé d'utiliser mon propre form login et ça marche aussi
 

Code :
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <jsp:include page="index.jsp"></jsp:include>
  5. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  6. <html>
  7. <body>
  8. <div align="center">
  9.  <h3>Donner votre login et mot de passe </h3>
  10.  <form action="j_spring_security_check" method="post">
  11.   <table>
  12.    <tr>
  13.     <td>Utilisateur:</td>
  14.     <td><input type="text" name="j_username"></td>
  15.    </tr>
  16.    <tr>
  17.     <td>Mot De Passe:</td>
  18.     <td><input type="password" name="j_password" /></td>
  19.    </tr>
  20.    <tr>
  21.     <td colspan="2" align="right"><input type="submit" value="Log In">
  22.     </td>
  23.    </tr>
  24.   </table>
  25.   <a href="inscription.html">créer un compte !</a>
  26.  </form>
  27. </div>
  28. <hr/>
  29. <br/>
  30. </body>
  31. </html>


 

Code :
  1. <http use-expressions="true" >
  2.  <intercept-url pattern="/login*" access="isAnonymous()" />
  3.  <intercept-url pattern="/inscription*" access="isAnonymous()" />
  4.  <intercept-url pattern="/pageConsomateur*" access="isAnonymous()" />
  5.  <intercept-url pattern="/pageFournisseur*" access="isAnonymous()" />
  6.  <intercept-url pattern="/**" access="isAuthenticated()" />
  7.  
  8.  <form-login login-page="/loginPage"/>
  9.  
  10.  <logout logout-success-url="/loginPage" />
  11.  
  12. </http>
  13.  
  14. <authentication-manager>
  15.  <authentication-provider>
  16.   <user-service>
  17.    <user name="user" password="user" authorities="User" />
  18.   </user-service>
  19.  </authentication-provider>
  20. </authentication-manager>


 
lorsque j'ai voulu utiliser ma propre méthode de check j'avais une redirection à la page login
 

Code :
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <jsp:include page="index.jsp"></jsp:include>
  5. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  6. <html>
  7. <body>
  8. <div align="center">
  9.  <h3>Donner votre login et mot de passe </h3>
  10.  <form action="loginPost.html="post">
  11.   <table>
  12.    <tr>
  13.     <td>Utilisateur:</td>
  14.     <td><input type="text" name="username"></td>
  15.    </tr>
  16.    <tr>
  17.     <td>Mot De Passe:</td>
  18.     <td><input type="password" name="password" /></td>
  19.    </tr>
  20.    <tr>
  21.     <td colspan="2" align="right"><input type="submit" value="Log In">
  22.     </td>
  23.    </tr>
  24.   </table>
  25.   <a href="inscription.html">créer un compte !</a>
  26.  </form>
  27. </div>
  28. <hr/>
  29. <br/>
  30. </body>
  31. </html>


 
loginController.java
 

Code :
  1. @RequestMapping(value = "/loginPost", method = RequestMethod.POST)
  2. public ModelAndView rechercher(HttpServletRequest r) {
  3.  Utilisatuer u= serviceLogin.rechercher(r.getParameter("username" ), r.getParameter("password" ));
  4.  if (u.getStatut().contains("consommateur" ) == true) {
  5.   return new ModelAndView("pageConsommateur" );
  6.  } else {
  7.   return new ModelAndView("pageFournisseur" );
  8.   }
  9. }

 
 
car j'ai plusieurs utilisateurs avec 2 types de statut différent et chaque type à ses propre pages (les données sont stockées dans un fichier)
Comment je peux faire pour utiliser ma propre méthode et pour faire la redirection chacun vers sa page (sachant que la méthode du contrôleur permet de faire ça si j'utilise pas Spring Security)??  
 

Reply

Marsh Posté le 07-08-2015 à 19:23:24   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed