idpSSOFederate.jsp revision 41202e15f589286770cacca433bbee5df379d00b
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering<%--
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
c2f1db8f83618e60dcded8303d14656d7d26b436Shawn Landden
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering The contents of this file are subject to the terms
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering of the Common Development and Distribution License
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering (the License). You may not use this file except in
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering compliance with the License.
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering You can obtain a copy of the License at
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering https://opensso.dev.java.net/public/CDDLv1.0.html or
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering opensso/legal/CDDLv1.0.txt
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering See the License for the specific language governing
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering permission and limitations under the License.
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering When distributing Covered Code, include this CDDL
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering Header Notice in each file and include the License file
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering at opensso/legal/CDDLv1.0.txt.
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering If applicable, add the following below the CDDL Header,
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering with the fields enclosed by brackets [] replaced by
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering your own identifying information:
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering "Portions Copyrighted [year] [name of copyright owner]"
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering $Id: idpSSOFederate.jsp,v 1.6 2009/10/15 00:00:41 exu Exp $
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering--%>
81527be142678057215665be66e4b3c8306a7ab3Lennart Poettering
81527be142678057215665be66e4b3c8306a7ab3Lennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
6fe391c56d3f4231576ccc9d62d2000f37640a92Zbigniew Jędrzejewski-Szmek<!-- %@ page import="com.iplanet.am.util.Debug" % -->
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering<%@ page import="com.sun.identity.shared.debug.Debug" %>
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering<%@ page import="com.sun.identity.saml2.common.SAML2Constants" %>
a963990ff4ebc7908d3cf82bbd8cf34a42d57b7fLennart Poettering<%@ page import="com.sun.identity.saml2.common.SAML2Exception" %>
a963990ff4ebc7908d3cf82bbd8cf34a42d57b7fLennart Poettering<%@ page import="com.sun.identity.saml2.common.SAML2Utils" %>
a963990ff4ebc7908d3cf82bbd8cf34a42d57b7fLennart Poettering<%@ page import="com.sun.identity.saml.common.SAMLUtils" %>
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering<%@ page import="com.sun.identity.saml2.profile.IDPSSOUtil" %>
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering<%@ page import="com.sun.identity.saml2.profile.IDPSSOFederate" %>
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering<%
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering // check request, response
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering if ((request == null) || (response == null)) {
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering SAMLUtils.sendError(request, response, response.SC_BAD_REQUEST,
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering "nullInput", SAML2Utils.bundle.getString("nullInput"));
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering return;
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering }
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering try {
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering String cachedResID = request.getParameter(SAML2Constants.RES_INFO_ID);
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering // if this id is set, then this is a redirect from the COT
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering // cookie writer. There is already an assertion response
4fd052aede13eb3041277c54ac2f5dee6e6c29cfFrederic Crozat // cached in this provider. Send it back directly.
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering if ((cachedResID != null) && (cachedResID.length() != 0)) {
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering IDPSSOUtil.sendResponse(request, response, cachedResID);
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering return;
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering }
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering } catch (SAML2Exception sse) {
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering SAML2Utils.debug.error("Error processing request " , sse);
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering SAMLUtils.sendError(request, response, response.SC_BAD_REQUEST,
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering "requestProcessingError",
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering SAML2Utils.bundle.getString("requestProcessingError") + " " +
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering sse.getMessage());
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering return;
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering }
a87247dd5dc3892f858e920d09b16cc2a8b9b3c4Lennart Poettering
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering String reqBinding = SAML2Constants.HTTP_REDIRECT;
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering if (request.getMethod().equals("POST")) {
a3eb665e0c12df35e807611582e7332ebed325b1Lennart Poettering reqBinding = SAML2Constants.HTTP_POST;
a87247dd5dc3892f858e920d09b16cc2a8b9b3c4Lennart Poettering }
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering /*
a963990ff4ebc7908d3cf82bbd8cf34a42d57b7fLennart Poettering * This call handles the federation and/or single sign on request
cbdca8525b4f36297cb9e5cb090a9648763ed1bfLennart Poettering * from a service provider. It processes the AuthnRequest
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering * sent by the service provider and generates a proper
6866780115a7c0af034f287d965f4bf6b02c1e6dZbigniew Jędrzejewski-Szmek * SAML Response that contains an Assertion.
6866780115a7c0af034f287d965f4bf6b02c1e6dZbigniew Jędrzejewski-Szmek * It sends back a response containing error status if
6866780115a7c0af034f287d965f4bf6b02c1e6dZbigniew Jędrzejewski-Szmek * something is wrong during the request processing.
6866780115a7c0af034f287d965f4bf6b02c1e6dZbigniew Jędrzejewski-Szmek */
6866780115a7c0af034f287d965f4bf6b02c1e6dZbigniew Jędrzejewski-Szmek IDPSSOFederate.doSSOFederate(request, response, reqBinding );
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering%>
f39e126e990869e33a002763ec02aa0aeb06214aLennart Poettering