a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: AuthnSvcUtils.java,v 1.5 2008/12/05 00:18:02 exu Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.authnsvc.protocol.SASLResponse;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.common.DiscoConstants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.common.DiscoServiceManager;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.common.DiscoUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.jaxb.ObjectFactory;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.jaxb.ResourceIDType;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.jaxb.ResourceOfferingType;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.jaxb.ServiceInstanceType;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.plugins.jaxb.DiscoEntryElement;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.disco.ResourceOffering;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.interfaces.ResourceIDMapper;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.security.SecurityAssertion;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.liberty.ws.soapbinding.Message;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The class <code>AuthnSvcUtils</code> provides some utils for Authentication
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * service related stuff.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>ResourceBundle</code> object for this service.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Locale.getInstallResourceBundle("libAuthnSvc");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Debug</code> object for this service.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static Debug debug = Debug.getInstance("libIDWSF");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns localized string from resource bundle.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param key a key to a resource bundle.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a localized string
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Decodes the value of a Data Element.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param dataE a Data element
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a byte array of decoded value
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static byte[] decodeDataElement(Element dataE) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String value = XMLUtils.getElementValue(dataE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets resource offering and credentials to the SASL response based on
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * provided sso token.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param saslResp a SASL response
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param message a SOAP message containing a SASL request
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param userDN Distinguished Name of the User.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return <code>true</code> if it sets correctly
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static boolean setResourceOfferingAndCredentials(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster SASLResponse saslResp, Message message, String userDN)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DiscoEntryElement discoEntry = (DiscoEntryElement)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DiscoServiceManager.getBootstrappingDiscoEntry();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ResourceOfferingType offering = discoEntry.getResourceOffering();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!DiscoServiceManager.useImpliedResource()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String providerID = serviceInstance.getProviderID();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster DiscoServiceManager.getResourceIDMapper(providerID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster idMapper = DiscoServiceManager.getDefaultResourceIDMapper();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster new com.sun.identity.liberty.ws.disco.jaxb.ObjectFactory();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ResourceIDType resourceID = fac.createResourceIDType();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String resourceIDValue = idMapper.getResourceID(providerID,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthnSvcUtils.setResourceOfferingAndCredentials" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "Offering: ResourceID Value:" + resourceIDValue);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster new com.sun.identity.liberty.ws.disco.jaxb.ObjectFactory();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ResourceIDType resourceID = fac.createResourceIDType();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster resourceID.setValue(DiscoConstants.IMPLIED_RESOURCE);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Map map = DiscoUtils.checkPolicyAndHandleDirectives(userDN,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster message, discoEntryList, null, null, null, message.getToken());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster List offerings = (List) map.get(DiscoUtils.OFFERINGS);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "AuthnSvcUtils.setResourceOfferingAndCredentials" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "no ResourceOffering");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ResourceOffering ro = (ResourceOffering)offerings.get(0);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster List assertions = (List) map.get(DiscoUtils.CREDENTIALS);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((assertions != null) && (!assertions.isEmpty())) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return true;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster debug.error("AuthnSvcUtils.setResourceOfferingAndCredentials:",ex);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;