Bonjour,
J'ai besoin de simuler une authentification pour que l'utilisateur ne s'en rende pas compte. Pour cela j'ai un site internet A sur lequel j'ai un lien vers un autre site B. Ce site B demande une authentification par formulaire en methode post. Je n'ai pas envie que l'utilisateur s'authentifie puisqu'il la deja fait sur le site A et que le mot de passe est identique.
Pour cela j'ai imaginé une servlet (sur le site A) qui executerai une requete post vers le site B et redirigerai vers la bonne page du site B (welcome.html par exemple).
Cette methode post passe par l'objet HttpClient de jakarta
http://jakarta.apache.org/commons/httpclient/
Cette objet me permet de realiser des methodes get et post et cela me permet de simuler l'authentification facilement. Le Hic c'est que comme j'utilise mon objet httpclient pour m'authentifier, ma servlet et donc mon site A redirige vers ma page mais n'est pas authentifier.
voici le code de la fonction Post de ma servlet
Si quelqu'un a une piste[/url]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int status; // requete get pour initialiser le serveur String urlget = getURL(request.getParameter("App")); String urlpost = urlget + request.getParameter("Action"); String urlTarget = urlget + request.getParameter("Target"); GetMethod get = new GetMethod(urlget); status = client.executeMethod(get); InputStream inget = get.getResponseBodyAsStream(); //pas necessaire // requete post pour s'authentifier NameValuePair[] data = { new NameValuePair("userName", "ppersonne"), new NameValuePair("password", "ppersonne"), }; PostMethod post = new PostMethod(urlpost); post.setRequestBody(data); status = client.executeMethod(post); InputStream inpost = post.getResponseBodyAsStream(); //pas necessaire /*String sessionid = ""; Cookie[] cookies = client.getState().getCookies(); for (int k = 0; k < cookies.length; k++) { Cookie cookie = cookies[k]; //out.println("<br><br>cookie "+k+" : name : " + cookie.getName()+" "+cookie.getValue()); javax.servlet.http.Cookie cookieServlet = new javax.servlet.http.Cookie( cookie.getName(), cookie.getValue()); sessionid = cookie.getValue(); response.addCookie(cookieServlet); }*/ //client. response.sendRedirect("http://localhost:8080/Login/accueil.jsp"); //forward(request, response, ); }
Partager