spAssertionConsumer.jsp revision 984ea967792540448d05fba2ac6fad5dadf91fd6
485N/A $Id: spAssertionConsumer.jsp,v 1.17 2010/01/23 00:07:06 exu Exp $
155N/A String localLoginUrl = SPACSUtils.prepareForLocalLogin(
155N/A if (localLoginUrl.indexOf("?") == -1) {
1405N/A if (relayState != null && relayState.length() != 0) {
156N/A gotoURL += "&RelayState=" + URLEncDec.encode(relayState);
155N/A localLoginUrl += URLEncDec.encode(gotoURL);
155N/A if (SAML2Utils.debug.messageEnabled()) {
1405N/A "nullInput", SAML2Utils.bundle.getString("nullInput"));
155N/A SAMLUtils.checkHTTPContentLength(request);
155N/A "largeContentLength", se.getMessage());
741N/A if (FSUtils.needSetLBCookieAndRedirect(request, response, false)) {
155N/A String requestURL = request.getRequestURL().toString();
155N/A String metaAlias = SAML2MetaUtils.getMetaAliasByUri(requestURL);
155N/A SAML2MetaManager metaManager = SAML2Utils.getSAML2MetaManager();
155N/A SAMLUtils.sendError(request, response,
155N/A response.SC_INTERNAL_SERVER_ERROR, "errorMetaManager",
155N/A SAML2Utils.bundle.getString("errorMetaManager"));
1641N/A hostEntityId = metaManager.getEntityByMetaAlias(metaAlias);
1641N/A SAMLUtils.sendError(request, response,
1641N/A response.SC_INTERNAL_SERVER_ERROR, "metaDataError",
1641N/A SAML2Utils.bundle.getString("metaDataError"));
1641N/A SAMLUtils.sendError(request, response,
1641N/A response.SC_INTERNAL_SERVER_ERROR, "metaDataError",
1641N/A SAML2Utils.bundle.getString("metaDataError"));
1641N/A String orgName = SAML2MetaUtils.getRealmByMetaAlias(metaAlias);
3477N/A if (orgName == null || orgName.length() == 0) {
155N/A sessionProvider = SessionManager.getProvider();
181N/A SAMLUtils.sendError(request, response,
1405N/A response.SC_INTERNAL_SERVER_ERROR, "nullSessionProvider",
155N/A se.getMessage());
3817N/A 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);
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, getLocalLoginUrl(
newSession = SPACSUtils.processResponse(
String[] data = {hostEntityId,se.getMessage(),""};
data[2] = respInfo.getResponse().toXMLString(true, true);
if (se.isRedirectionDone()) {
if (SAML2Utils.debug.messageEnabled()) {
FSUtils.forwardRequest(request, response, getLocalLoginUrl(
SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "SSOFailed",
SAML2Utils.bundle.getString("SSOFailed"));
if (SAML2Utils.debug.messageEnabled()) {
SAML2Utils.debug.message("Session is null.");
SAMLUtils.sendError(request, response,
response.SC_INTERNAL_SERVER_ERROR, "SSOFailed",
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.");
Response saml2Resp = respInfo.getResponse();
String requestID = saml2Resp.getInResponseTo();
boolean isProxyOn = IDPProxyUtil.isIDPProxyEnabled(requestID);
IDPProxyUtil.generateProxyResponse(request, response, metaAlias,
SAML2Utils.debug.message("Failed sending proxy response");
String finalUrl = SPACSUtils.getRelayState(
if (finalUrl != null && finalUrl.length() != 0) {
sessionProvider.rewriteURL(newSession, finalUrl);
"spAssertionConsumer.jsp: URL rewriting failed.", se);
String redirectUrl = SPACSUtils.getIntermediateURL(
if (redirectUrl != null && redirectUrl.length() != 0) {
if (realFinalUrl != null && realFinalUrl.length() != 0) {
if (redirectUrl.indexOf("?") != -1) {
redirectUrl += URLEncDec.encode(realFinalUrl);
realRedirectUrl = sessionProvider.rewriteURL(
"spAssertionConsumer.jsp: URL rewriting failed.", se);
if (realRedirectUrl == null || (realRedirectUrl.trim().length() == 0)) {
<jsp:forward page="/saml2/jsp/default.jsp?message=ssoSuccess" />
SAML2Utils.validateRelayStateURL(orgName, hostEntityId,
SAMLUtils.sendError(request, response,
response.SC_BAD_REQUEST, "requestProcessingError",
SAML2Utils.bundle.getString("requestProcessingError") + " " +
se.getMessage());
response.sendRedirect(realRedirectUrl);