spAssertionConsumer.jsp revision f5efa5619bc4c83c0a58f55945e87d480e1011da
219N/A $Id: spAssertionConsumer.jsp,v 1.17 2010/01/23 00:07:06 exu Exp $
219N/A String localLoginUrl = SPACSUtils.prepareForLocalLogin(
219N/A if (localLoginUrl.indexOf("?") == -1) {
219N/A if (relayState != null && relayState.length() != 0) {
219N/A gotoURL += "&RelayState=" + URLEncDec.encode(relayState);
219N/A localLoginUrl += URLEncDec.encode(gotoURL);
219N/A if (SAML2Utils.debug.messageEnabled()) {
219N/A saml2Auditor.setMethod("spAssertionConsumer");
219N/A "nullInput", SAML2Utils.bundle.getString("nullInput"));
219N/A SAML2Utils.bundle.getString("nullInput"));
219N/A SAMLUtils.checkHTTPContentLength(request);
219N/A "largeContentLength", se.getMessage());
219N/A se.getMessage());
219N/A if (FSUtils.needSetLBCookieAndRedirect(request, response, false)) {
1938N/A String requestURL = request.getRequestURL().toString();
3477N/A String metaAlias = SAML2MetaUtils.getMetaAliasByUri(requestURL);
3477N/A String realm = SAML2MetaUtils.getRealmByMetaAlias(metaAlias);
219N/A if (realm == null || realm.length() == 0) {
219N/A saml2Auditor.setRealm(realm);
219N/A SAML2MetaManager metaManager = SAML2Utils.getSAML2MetaManager();
3817N/A SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "errorMetaManager",
SAML2Utils.bundle.getString("errorMetaManager"));
SAML2Utils.bundle.getString("errorMetaManager"));
hostEntityId = metaManager.getEntityByMetaAlias(metaAlias);
SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "metaDataError",
SAML2Utils.bundle.getString("metaDataError"));
SAML2Utils.bundle.getString("metaDataError"));
SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "metaDataError",
SAML2Utils.bundle.getString("metaDataError"));
SAML2Utils.bundle.getString("metaDataError"));
sessionProvider = SessionManager.getProvider();
SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "nullSessionProvider",
se.getMessage());
respInfo = SPACSUtils.getResponse(
if (!response.isCommitted()) {
SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "getResponseError",
se.getMessage());
String ecpRelayState = respInfo.getRelayState();
if ((ecpRelayState != null) && (ecpRelayState.length() > 0)) {
token = sessionProvider.getSession(request);
saml2Auditor.setAuthTokenId(token);
if (SAML2Utils.debug.messageEnabled()) {
"spAssertionConsumer.jsp: Token is null." +
se.getMessage());
if (federate != null && federate.trim().equals("true") &&
if (SAML2Utils.debug.messageEnabled()) {
FSUtils.forwardRequest(request, response,
Response saml2Resp = respInfo.getResponse();
String requestID = saml2Resp.getInResponseTo();
boolean isProxyOn = IDPProxyUtil.isIDPProxyEnabled(requestID);
newSession = SPACSUtils.processResponse( request, response, new PrintWriter(out, true), metaAlias, token,
saml2Auditor.setSSOTokenId(newSession);
String[] data = {hostEntityId, se.getMessage(), ""};
data[2] = saml2Resp.toXMLString(true, true);
if (se.isRedirectionDone()) {
if ("noPassiveResponse".equals(se.getErrorCode())) {
IDPProxyUtil.sendNoPassiveProxyResponse(request, response, new PrintWriter(out, true),
SAML2Utils.debug.error("Failed to send nopassive proxy response", samle);
if (SAML2Utils.debug.messageEnabled()) {
FSUtils.forwardRequest(request, response,
SAML2Utils.bundle.getString("SSOFailed"));
SAML2Utils.bundle.getString("SSOFailed"));
if (SAML2Utils.debug.messageEnabled()) {
SAML2Utils.debug.message("Session is null.");
SAML2Utils.bundle.getString("SSOFailed"));
SAML2Utils.debug.message("SSO SUCCESS");
String[] redirected = sessionProvider.getProperty(newSession,
if ((redirected != null) && (redirected.length != 0) &&
SAML2Utils.debug.message("Redirection already done in SPAdapter.");
IDPProxyUtil.generateProxyResponse(request, response, new PrintWriter(out, true), metaAlias, respInfo,
SAML2Utils.debug.error("Failed sending proxy response", se);
String finalUrl = SPACSUtils.getRelayState(relayState, realm, hostEntityId, metaManager);
if (finalUrl != null && finalUrl.length() != 0) {
realFinalUrl = sessionProvider.rewriteURL(newSession, finalUrl);
"spAssertionConsumer.jsp: URL rewriting failed.", se);
String redirectUrl = SPACSUtils.getIntermediateURL(realm, hostEntityId, metaManager);
if (redirectUrl != null && redirectUrl.length() != 0) {
if (realFinalUrl != null && realFinalUrl.length() != 0) {
if (redirectUrl.indexOf("?") != -1) {
redirectUrl += URLEncDec.encode(realFinalUrl);
realRedirectUrl = sessionProvider.rewriteURL(newSession, redirectUrl);
if (realRedirectUrl == null || (realRedirectUrl.trim().length() == 0)) {
<jsp:forward page="/saml2/jsp/default.jsp?message=ssoSuccess" />
SAMLUtils.sendError(request, response,
response.SC_BAD_REQUEST, "requestProcessingError",
response.sendRedirect(realRedirectUrl);