package org.xdi.oxauth.rp.demo; import org.apache.log4j.Logger; import org.xdi.oxauth.client.UserInfoClient; import org.xdi.oxauth.client.UserInfoResponse; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import java.util.Map; /** * @author yuriyz on 07/19/2016. */ public class RpDemoServlet extends HttpServlet { private static final Logger LOG = Logger.getLogger(RpDemoServlet.class); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { resp.setContentType("text/html;charset=utf-8"); PrintWriter pw = resp.getWriter(); pw.println("<h1>RP Demo</h1>"); pw.println("<br/><br/>"); String accessToken = (String) req.getSession().getAttribute("access_token"); String userInfoEndpoint = (String) req.getSession().getAttribute("userinfo_endpoint"); LOG.trace("access_token: " + accessToken + ", userinfo_endpoint: " + userInfoEndpoint); UserInfoClient userInfoClient = new UserInfoClient(userInfoEndpoint); userInfoClient.setExecutor(Utils.createTrustAllExecutor()); UserInfoResponse response = userInfoClient.execUserInfo(accessToken); LOG.trace("UserInfo response: " + response); if (response.getStatus() != 200) { pw.print("Failed to fetch user info claims"); return; } pw.println("<h2>User Info Claims:</h2>"); pw.println("<br/>"); for (Map.Entry<String, List<String>> entry : response.getClaims().entrySet()) { pw.print("Name: " + entry.getKey() + " Value: " + entry.getValue()); pw.println("<br/>"); } } catch (Exception e) { LOG.error(e.getMessage(), e); throw new RuntimeException(e); } } }