Skip to content

Instantly share code, notes, and snippets.

@simbo1905
Created April 27, 2014 16:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simbo1905/11349189 to your computer and use it in GitHub Desktop.
Save simbo1905/11349189 to your computer and use it in GitHub Desktop.
package dumbconsumer;
import java.io.IOException;
import java.util.List;
import java.util.Map;
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 org.openid4java.association.AssociationException;
import org.openid4java.consumer.ConsumerException;
import org.openid4java.consumer.ConsumerManager;
import org.openid4java.consumer.VerificationResult;
import org.openid4java.discovery.DiscoveryException;
import org.openid4java.discovery.DiscoveryInformation;
import org.openid4java.discovery.Identifier;
import org.openid4java.message.AuthRequest;
import org.openid4java.message.MessageException;
import org.openid4java.message.ParameterList;
public class DumbConsumer extends HttpServlet
{
private static final long serialVersionUID = 1L;
private ConsumerManager dumbManager = null;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request, response);
}
protected void doPost(HttpServletRequest httpRequest, HttpServletResponse httpResponse)
throws ServletException, IOException
{
Map httpReqParams = httpRequest.getParameterMap();
if ((httpReqParams.containsKey("user-id")) &&
(httpReqParams.get("user-id") != null))
{
String identifier = httpRequest.getParameter("user-id").toString();
String returnToUrl = httpRequest.getRequestURL().toString();
List discoveries = null;
DiscoveryInformation discovered = null;
AuthRequest authRequest = null;
try
{
this.dumbManager = new ConsumerManager();
this.dumbManager.setMaxAssocAttempts(0);
discoveries = this.dumbManager.discover(identifier);
discovered = this.dumbManager.associate(discoveries);
authRequest = this.dumbManager.authenticate(discovered, returnToUrl);
}
catch (ConsumerException e) {
e.printStackTrace();
} catch (DiscoveryException e) {
e.printStackTrace();
} catch (MessageException e) {
e.printStackTrace();
}
httpRequest.getSession().setAttribute("discovered", discovered);
httpResponse.sendRedirect(authRequest.getDestinationUrl(true));
}
else if (httpReqParams.containsKey("openid.ns"))
{
String receivingUrl = httpRequest.getRequestURL().toString();
DiscoveryInformation discovered = (DiscoveryInformation)httpRequest
.getSession().getAttribute("discovered");
ParameterList authRespParams = new ParameterList(httpReqParams);
VerificationResult result = null;
Identifier verifiedId = null;
try
{
result = this.dumbManager.verify(receivingUrl, authRespParams,
discovered);
}
catch (MessageException e) {
e.printStackTrace();
} catch (DiscoveryException e) {
e.printStackTrace();
} catch (AssociationException e) {
e.printStackTrace();
}
verifiedId = result.getVerifiedId();
if (verifiedId != null) {
httpResponse.sendRedirect("out.jsp?user-id=" +
verifiedId.getIdentifier());
}
else
httpResponse.sendRedirect("index.jsp");
}
else
{
httpResponse.sendRedirect("index.jsp");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment