@GET @Produces({"application/json", "application/jwt"}) public Response getUserInfo() { OAuthContext oauth = OAuthContextUtils.getContext(mc); UserInfo userInfo = userInfoProvider.getUserInfo( oauth.getClientId(), oauth.getSubject(), oauth.getPermissions()); if (userInfo != null) { userInfo.setIssuer(issuer); } userInfo.setAudience(oauth.getClientId()); Object responseEntity = userInfo; if (super.isJwsRequired() || super.isJweRequired()) { responseEntity = super.processJwt( new JwtToken(userInfo), oauthDataProvider.getClient(oauth.getClientId())); } return Response.ok(responseEntity).build(); }
/** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie[] c = request.getCookies(); if (c == null || c.length == 0 || !c[0].getName().equals("fml31-id")) { response.sendRedirect("http://krotkov.me:8080/fml31-train/login"); return; } int id = Integer.parseInt(c[0].getValue()); User u = UserInfoProvider.getUser(id); if (u == null) { response.sendRedirect("http://krotkov.me:8080/fml31-train/login"); return; } HtmlProvider.sendSimpleDynamicPage(response, "main.html", "$name$", u.login); }
private String getProcessedIdToken(ServerAccessToken st) { if (userInfoProvider != null) { IdToken idToken = userInfoProvider.getIdToken( st.getClient().getClientId(), st.getSubject(), st.getScopes()); setAtHashAndNonce(idToken, st); return super.processJwt(new JwtToken(idToken), st.getClient()); } else if (st.getSubject().getProperties().containsKey(OidcUtils.ID_TOKEN)) { return st.getSubject().getProperties().get(OidcUtils.ID_TOKEN); } else if (st.getSubject() instanceof OidcUserSubject) { OidcUserSubject sub = (OidcUserSubject) st.getSubject(); IdToken idToken = new IdToken(sub.getIdToken()); idToken.setAudience(st.getClient().getClientId()); idToken.setAuthorizedParty(st.getClient().getClientId()); // if this token was refreshed then the cloned IDToken might need to have its // issuedAt and expiry time properties adjusted if it proves to be necessary setAtHashAndNonce(idToken, st); return super.processJwt(new JwtToken(idToken), st.getClient()); } else { return null; } }