use of com.sun.identity.saml2.assertion.impl.AssertionImpl in project OpenAM by OpenRock.
the class OAuth2Saml2GrantSPAdapter method postSingleSignOnSuccess.
/**
* @{inheritDoc}
*/
public boolean postSingleSignOnSuccess(String hostedEntityID, String realm, HttpServletRequest request, HttpServletResponse response, PrintWriter out, Object session, AuthnRequest authnRequest, Response ssoResponse, String profile, boolean isFederation) throws SAML2Exception {
AssertionImpl assertion = (AssertionImpl) ssoResponse.getAssertion().get(0);
StringBuilder sb = new StringBuilder();
try {
//post assertion to the OAuth 2 token endpoint using the saml2 grant.
sb.append("<form name=\"postForm\" action=\"");
sb.append(hostedEntityID);
if (hostedEntityID.endsWith("/")) {
sb.append("oauth2/access_token");
} else {
sb.append("/oauth2/access_token");
}
sb.append("?realm=" + (StringUtils.isEmpty(realm) ? "/" : realm));
sb.append("\" method=\"post\">");
sb.append("<input type=\"hidden\" name=\"grant_type\" value=\"");
sb.append(OAuth2Constants.SAML20.GRANT_TYPE_URI);
sb.append("\">");
sb.append("<input type=\"hidden\" name=\"assertion\" value=\"");
sb.append(Base64.encode(assertion.toXMLString(false, false).getBytes("UTF-8")));
sb.append("\">");
sb.append("<input type=\"hidden\" name=\"client_id\" value=\"");
sb.append(hostedEntityID);
sb.append("\">");
sb.append("</form>");
sb.append("<script language=\"Javascript\">");
sb.append("document.postForm.submit();");
sb.append("</script>");
out.print(sb.toString());
} catch (UnsupportedEncodingException e) {
SAML2Utils.debug.error("OAuth2Saml2GrantSPAdapter.postSingleSignOnSuccess: Unsuppored Encoding Exception: " + e.getMessage());
} catch (IOException e) {
SAML2Utils.debug.error("OAuth2Saml2GrantSPAdapter.postSingleSignOnSuccess: IOException: " + e.getMessage());
}
return true;
}
Aggregations