fedletAttrResp.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%--
fa9e4066f08beec538e775443c5be79dd423fcabahrens The contents of this file are subject to the terms
fa9e4066f08beec538e775443c5be79dd423fcabahrens of the Common Development and Distribution License
fa9e4066f08beec538e775443c5be79dd423fcabahrens (the License). You may not use this file except in
fa9e4066f08beec538e775443c5be79dd423fcabahrens compliance with the License.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens You can obtain a copy of the License at
fa9e4066f08beec538e775443c5be79dd423fcabahrens https://opensso.dev.java.net/public/CDDLv1.0.html or
fa9e4066f08beec538e775443c5be79dd423fcabahrens opensso/legal/CDDLv1.0.txt
fa9e4066f08beec538e775443c5be79dd423fcabahrens See the License for the specific language governing
fa9e4066f08beec538e775443c5be79dd423fcabahrens permission and limitations under the License.
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens When distributing Covered Code, include this CDDL
fa9e4066f08beec538e775443c5be79dd423fcabahrens Header Notice in each file and include the License file
fa9e4066f08beec538e775443c5be79dd423fcabahrens at opensso/legal/CDDLv1.0.txt.
fa9e4066f08beec538e775443c5be79dd423fcabahrens If applicable, add the following below the CDDL Header,
fa9e4066f08beec538e775443c5be79dd423fcabahrens with the fields enclosed by brackets [] replaced by
fa9e4066f08beec538e775443c5be79dd423fcabahrens your own identifying information:
fa9e4066f08beec538e775443c5be79dd423fcabahrens "Portions Copyrighted [year] [name of copyright owner]"
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens $Id: fedletAttrResp.jsp,v 1.2 2009/07/24 22:53:20 madan_ranganath Exp $
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens Copyright 2009 Sun Microsystems Inc. All Rights Reserved
fa9e4066f08beec538e775443c5be79dd423fcabahrens--%>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%--
fa9e4066f08beec538e775443c5be79dd423fcabahrens fedletAttrResp.jsp
fa9e4066f08beec538e775443c5be79dd423fcabahrens This JSP used by the Fedlet performs the following:
fa9e4066f08beec538e775443c5be79dd423fcabahrens 1) Retrieves the list of attributes from fedletAttrQuery.jsp
fa9e4066f08beec538e775443c5be79dd423fcabahrens 2) Invokes the method to retrieve the attribute values
fa9e4066f08beec538e775443c5be79dd423fcabahrens 3) Displays the attribute value pairs.
fa9e4066f08beec538e775443c5be79dd423fcabahrens--%>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.shared.debug.Debug" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml.common.SAMLUtils" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.assertion.Assertion" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.assertion.AssertionFactory" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.assertion.Attribute" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.assertion.NameID" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.common.SAML2Constants" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.common.SAML2Utils" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.common.SAML2Exception" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.profile.AttributeQueryUtil" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="com.sun.identity.saml2.protocol.Response" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="java.util.ArrayList" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="java.util.Date" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="java.util.HashMap" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="java.util.Iterator" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="java.util.List" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%@ page import="java.util.Map" %>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%
fa9e4066f08beec538e775443c5be79dd423fcabahrens String deployuri = request.getRequestURI();
fa9e4066f08beec538e775443c5be79dd423fcabahrens int slashLoc = deployuri.indexOf("/", 1);
fa9e4066f08beec538e775443c5be79dd423fcabahrens if (slashLoc != -1) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens deployuri = deployuri.substring(0, slashLoc);
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens%>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<html>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<head>
fa9e4066f08beec538e775443c5be79dd423fcabahrens <title>Sample Fedlet Attribute Query Application</title>
fa9e4066f08beec538e775443c5be79dd423fcabahrens <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
fa9e4066f08beec538e775443c5be79dd423fcabahrens <link rel="stylesheet" type="text/css" href="<%= deployuri %>/com_sun_web_ui/css/css_ns6up.css" />
fa9e4066f08beec538e775443c5be79dd423fcabahrens</head>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<body>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<div class="MstDiv"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="MstTblTop" title="">
fa9e4066f08beec538e775443c5be79dd423fcabahrens<tbody><tr>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<td nowrap="nowrap">&nbsp;</td>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<td nowrap="nowrap">&nbsp;</td>
fa9e4066f08beec538e775443c5be79dd423fcabahrens</tr></tbody></table>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<table width="100%" border="0" cellpadding="0" cellspacing="0" class="MstTblBot" title="">
fa9e4066f08beec538e775443c5be79dd423fcabahrens<tbody><tr>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<td class="MstTdTtl" width="99%">
fa9e4066f08beec538e775443c5be79dd423fcabahrens<div class="MstDivTtl"><img name="ProdName" src="<%= deployuri %>/console/images/PrimaryProductName.png" alt="" /></div></td><td class="MstTdLogo" width="1%"><img name="RMRealm.mhCommon.BrandLogo" src="<%= deployuri %>/com_sun_web_ui/images/other/javalogo.gif" alt="Java(TM) Logo" border="0" height="55" width="31" /></td></tr></tbody></table>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<table class="MstTblEnd" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td><img name="RMRealm.mhCommon.EndorserLogo" src="<%= deployuri %>/com_sun_web_ui/images/masthead/masthead-sunname.gif" alt="Sun(TM) Microsystems,
fa9e4066f08beec538e775443c5be79dd423fcabahrensInc." align="right" border="0" height="10" width="108" /></td></tr></tbody></table></div><div class="SkpMedGry1"><a name="SkipAnchor2089" id="SkipAnchor2089"></a></div>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<div class="SkpMedGry1"><a href="#SkipAnchor4928"><img src="<%= deployuri %>/com_sun_web_ui/images/other/dot.gif" alt="Jump Over Tab Navigation Area. Current Selection is: Access Control" border="0" height="1" width="1" /></a></div>
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%
fa9e4066f08beec538e775443c5be79dd423fcabahrens try {
fa9e4066f08beec538e775443c5be79dd423fcabahrens String idpEntityID = request.getParameter("idpEntityID");
fa9e4066f08beec538e775443c5be79dd423fcabahrens if ((idpEntityID == null) ||
fa9e4066f08beec538e775443c5be79dd423fcabahrens (idpEntityID.length() == 0)) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens response.sendError(response.SC_BAD_REQUEST,
fa9e4066f08beec538e775443c5be79dd423fcabahrens SAML2Utils.bundle.getString("nullIDPEntityID"));
fa9e4066f08beec538e775443c5be79dd423fcabahrens return;
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens String spEntityID = request.getParameter("spEntityID");
fa9e4066f08beec538e775443c5be79dd423fcabahrens if ((spEntityID == null) ||
fa9e4066f08beec538e775443c5be79dd423fcabahrens (spEntityID.length() == 0)) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens response.sendError(response.SC_BAD_REQUEST,
fa9e4066f08beec538e775443c5be79dd423fcabahrens SAML2Utils.bundle.getString("nullSPEntityID"));
fa9e4066f08beec538e775443c5be79dd423fcabahrens return;
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens String nameIDValue = request.getParameter("nameidvalue");
fa9e4066f08beec538e775443c5be79dd423fcabahrens String newNameIDValue = nameIDValue.replace("%2F","/");
fa9e4066f08beec538e775443c5be79dd423fcabahrens AssertionFactory assertionFactory = AssertionFactory.getInstance();
fa9e4066f08beec538e775443c5be79dd423fcabahrens List attrsList = new ArrayList();
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens try {
fa9e4066f08beec538e775443c5be79dd423fcabahrens if (request.getParameter("attr1").length() > 1 |
fa9e4066f08beec538e775443c5be79dd423fcabahrens request.getParameter("attr2").length() > 1 |
fa9e4066f08beec538e775443c5be79dd423fcabahrens request.getParameter("attr3").length() > 1) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens if (request.getParameter("attr1").length() > 1) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens attrsList.add(request.getParameter("attr1"));
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens if (request.getParameter("attr2").length() > 1) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens attrsList.add(request.getParameter("attr2"));
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens if (request.getParameter("attr3").length()>1) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens attrsList.add(request.getParameter("attr3"));
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens } catch (Exception e){
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.print("Requesting all available IDP attributes");
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens String attrQueryProfile = request.getParameter("attrQueryProfile");
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens String subjectDN = request.getParameter("subjectDN");
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens Map attrMap = AttributeQueryUtil.getAttributeMapForFedlet(
fa9e4066f08beec538e775443c5be79dd423fcabahrens spEntityID,
fa9e4066f08beec538e775443c5be79dd423fcabahrens idpEntityID,
fa9e4066f08beec538e775443c5be79dd423fcabahrens newNameIDValue,
fa9e4066f08beec538e775443c5be79dd423fcabahrens attrsList,
fa9e4066f08beec538e775443c5be79dd423fcabahrens attrQueryProfile,
fa9e4066f08beec538e775443c5be79dd423fcabahrens subjectDN);
fa9e4066f08beec538e775443c5be79dd423fcabahrens
fa9e4066f08beec538e775443c5be79dd423fcabahrens%>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<h2> Fedlet Attribute Query Response </h2>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<table border="2" cellspacing="0" cellpadding="7">
fa9e4066f08beec538e775443c5be79dd423fcabahrens<tr>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<th>Attribute Query</th>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<th>Attribute Response</th>
fa9e4066f08beec538e775443c5be79dd423fcabahrens</tr>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%
fa9e4066f08beec538e775443c5be79dd423fcabahrens Iterator itr = attrMap.entrySet().iterator();
fa9e4066f08beec538e775443c5be79dd423fcabahrens while (itr.hasNext()) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens Map.Entry pairs = (Map.Entry)itr.next();
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println("<tr>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println("<td>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens String attrKey = (String)pairs.getKey();
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println(attrKey + "<br>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println("</td>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println("<td>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens String attrValue = (String)pairs.getValue();
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println(attrValue + "<br>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println("</td>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens out.println("</tr>");
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens%>
fa9e4066f08beec538e775443c5be79dd423fcabahrens</table>
fa9e4066f08beec538e775443c5be79dd423fcabahrens<%
fa9e4066f08beec538e775443c5be79dd423fcabahrens } catch (Exception ex) {
fa9e4066f08beec538e775443c5be79dd423fcabahrens SAML2Utils.debug.error("Error sending AttributeQuery " , ex);
fa9e4066f08beec538e775443c5be79dd423fcabahrens }
fa9e4066f08beec538e775443c5be79dd423fcabahrens%>
fa9e4066f08beec538e775443c5be79dd423fcabahrens</body>
fa9e4066f08beec538e775443c5be79dd423fcabahrens</html>
fa9e4066f08beec538e775443c5be79dd423fcabahrens