Package net.vinant.idp4java

Source Code of net.vinant.idp4java.LoginServlet

package net.vinant.idp4java;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.vinant.idp4java.openid4javaImpl.SimpleConsumer;

import org.apache.commons.lang.StringUtils;
import org.openid4java.consumer.ConsumerException;
import org.openid4java.message.ParameterList;

/**
* Servlet implementation class LoginServlet
*/
public class LoginServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doPost(request, response);
  }

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String action = request.getParameter("action");
    HttpSession session = request.getSession();
    if(StringUtils.equals(action, "doLogin")){
      processLoginRequest(request, response);
    }else{
      //response.sendRedirect("/idp4java/endpoint");
      //request.getRequestDispatcher("login.jsp").forward(request, response);
      //response.sendRedirect("login.jsp");
      Object osc = session.getAttribute("SimpleConsumer");
      SimpleConsumer simpleConsumer = null;
      try {
        //Initialize SimpleConsumer
        if(osc!=null){
          simpleConsumer = (SimpleConsumer)osc;
        }else{
          simpleConsumer = new SimpleConsumer();
          session.setAttribute("SimpleConsumer", simpleConsumer);
        }
       
        //Determine if we need to do Attribute Exchange or verify response
        if(isAttribueExchangeResponse(request)){
          simpleConsumer.verifyResponse(request);
        }else{
          simpleConsumer.authRequest("http://localhost:8081/idp4java/idp", request, response);
        }
       
        Object o = session.getAttribute("SUCCESS");
        if(o!=null && (Boolean) session.getAttribute("SUCCESS") == Boolean.TRUE){
          processLoginSuccess(request, response);
        }
       
      } catch (ConsumerException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
        ParameterList pList = new ParameterList(request.getParameterMap());
      System.out.println("done");
     
    }
  }

  private void processLoginSuccess(HttpServletRequest request, HttpServletResponse response) {
    //Login was successful
    try {
      response.sendRedirect("welcome.jsp");
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  private boolean isAttribueExchangeResponse(HttpServletRequest request){
        ParameterList paramList = new ParameterList(request.getParameterMap());
        if("id_res".equals(paramList.getParameterValue("openid.mode"))){
          return true;
        }
        return false;
  }
 
  private void processLoginRequest(HttpServletRequest request,
      HttpServletResponse response) {
    System.out.println("process login info");
  }

}
TOP

Related Classes of net.vinant.idp4java.LoginServlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.