a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
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 *
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 * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
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 *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: CircleOfTrustDescriptor.java,v 1.5 2008/06/25 05:46:38 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.cot;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Map;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Set;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.HashMap;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.HashSet;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.Collections;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.validation.ValidationException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.shared.validation.URLValidator;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The <code>COTDescriptor</code> class is the representation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the circle of trust configuration.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class CircleOfTrustDescriptor {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String circleOfTrustType = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String circleOfTrustName = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String realm = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String circleOfTrustDescription = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String circleOfTrustStatus = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String writerServiceURL = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String readerServiceURL = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String idffWriterServiceURL = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String idffReaderServiceURL = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String saml2WriterServiceURL = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private String saml2ReaderServiceURL = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Set trustedProviders = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // map holding protocol to set of trusted providers
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private Map trustedProviderMap = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /*
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Private Constructor.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This constructor populates object from the attribute
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Map received from the data store.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param name The name of circle of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm The realm the circle of trust resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param attrMap The map which contains attributes of the circle
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if values in the map are invalid.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster CircleOfTrustDescriptor(String name, String realm, Map attrMap)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustName(name);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.realm = realm;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustDescription(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap, COTConstants.COT_DESC));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustType(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_TYPE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustStatus(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap, COTConstants.COT_STATUS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setWriterServiceURL(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_WRITER_SERVICE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setReaderServiceURL(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_READER_SERVICE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setSAML2WriterServiceURL(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_SAML2_WRITER_SERVICE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setSAML2ReaderServiceURL(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_SAML2_READER_SERVICE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setIDFFWriterServiceURL(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_IDFF_WRITER_SERVICE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setIDFFReaderServiceURL(COTUtils.getFirstEntry(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,COTConstants.COT_IDFF_READER_SERVICE));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setTrustedProviders((Set)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap.get(COTConstants.COT_TRUSTED_PROVIDERS));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Creates new <code>COTDescriptor</code> instance.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustName name for the circleOfTrust
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm The realm the circle of trust resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustStatus status of the CircleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>circleOfTrustName</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * or <code>circleOfTrustStatus</code> is invalid.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public CircleOfTrustDescriptor(String circleOfTrustName, String realm,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustStatus) throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustName(circleOfTrustName);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.realm = realm;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustStatus(circleOfTrustStatus);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Creates new <code>COTDescriptor</code> instance.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustName name for the circleOfTrust
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param realm The realm this circle of trust resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustStatus status of the CircleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustDescription description for the circleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustIDFFReaderURL the reader url of the CircleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustIDFFWriterURL the writer url of the circleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustSAML2ReaderURL the reader url of the CircleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustSAML2WriterURL the writer url of the circleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustProvider the trusted providers of the CircleOfTrust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if any input parameter is invalid.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public CircleOfTrustDescriptor(String circleOfTrustName,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String realm,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustStatus,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustDescription,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustIDFFReaderURL,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustIDFFWriterURL,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustSAML2ReaderURL,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String circleOfTrustSAML2WriterURL,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Set circleOfTrustProvider)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustName(circleOfTrustName);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.realm = realm;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustStatus(circleOfTrustStatus);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setCircleOfTrustDescription(circleOfTrustDescription);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (circleOfTrustIDFFReaderURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setIDFFReaderServiceURL(circleOfTrustIDFFReaderURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (circleOfTrustIDFFWriterURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setIDFFWriterServiceURL(circleOfTrustIDFFWriterURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (circleOfTrustSAML2ReaderURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setSAML2ReaderServiceURL(circleOfTrustSAML2ReaderURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (circleOfTrustSAML2WriterURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setSAML2WriterServiceURL(circleOfTrustSAML2WriterURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setTrustedProviders(circleOfTrustProvider);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Validates and set the circle of trust name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void setCircleOfTrustName(String name) throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (name == null || name.trim().length() <= 0 ) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String[] args = { name };
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidCOTName",args);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustName = name;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Validates and set the circle of trust type.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void setCircleOfTrustType(String type) throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((type != null) && !COTUtils.isValidProtocolType(type)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String[] data = { type };
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidProtooclType",data);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.debug.message("Circle of Trust type is : " + type);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustType=type;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns name of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return name of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getCircleOfTrustName() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return circleOfTrustName;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns name of the realm the Circle of Trust resides.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return realm name.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getCircleOfTrustRealm() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return realm;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns status of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return status of the Circle of Trust. It can be
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "active" or "inactive"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getCircleOfTrustStatus() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return circleOfTrustStatus;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns description of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return description of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getCircleOfTrustDescription() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return circleOfTrustDescription;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns reader service URL of the Circle of Trust for ID-FF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Reader service URL for ID-FF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getIDFFReaderServiceURL() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (idffReaderServiceURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return idffReaderServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if ((circleOfTrustType != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustType.equalsIgnoreCase(COTConstants.IDFF)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // handle legacy case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return readerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns reader service URL of the Circle of Trust for SAMLv2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Reader service URL for SAMLv2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getSAML2ReaderServiceURL() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (saml2ReaderServiceURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return saml2ReaderServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if ((circleOfTrustType != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustType.equalsIgnoreCase(COTConstants.SAML2)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // handle legacy case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return readerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns Writer Service URL of the Circle of Trust for ID-FF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the Writer service URL for ID-FF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getIDFFWriterServiceURL() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (idffWriterServiceURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return idffWriterServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if ((circleOfTrustType != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustType.equalsIgnoreCase(COTConstants.IDFF)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // handle legacy case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return writerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns Writer Service URL of the Circle of Trust for SAMLv2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return the Writer service URL for SAMLv2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public String getSAML2WriterServiceURL() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (saml2WriterServiceURL != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return saml2WriterServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if ((circleOfTrustType != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustType.equalsIgnoreCase(COTConstants.SAML2)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // handle legacy case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return writerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets description of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustDescription Description of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setCircleOfTrustDescription(String circleOfTrustDescription) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.circleOfTrustDescription = circleOfTrustDescription;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets reader service URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param readerServiceURL reader service URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>readerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is not an URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void setReaderServiceURL(String readerServiceURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((readerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (readerServiceURL.trim().length() > 0)){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster URLValidator validator = URLValidator.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validator.validate(readerServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ValidationException e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidReaderUrl",null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.readerServiceURL = readerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets reader service URL for ID-FF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param readerServiceURL reader service URL for ID-FF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>readerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is not an URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setIDFFReaderServiceURL(String readerServiceURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((readerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (readerServiceURL.trim().length() > 0)){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster URLValidator validator = URLValidator.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validator.validate(readerServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ValidationException e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidReaderUrl",null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.idffReaderServiceURL = readerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets reader service URL for SMALv2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param readerServiceURL reader service URL of SAMLv2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>readerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is not an URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setSAML2ReaderServiceURL(String readerServiceURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((readerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (readerServiceURL.trim().length() > 0)){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster URLValidator validator = URLValidator.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validator.validate(readerServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ValidationException e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidReaderUrl",null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.saml2ReaderServiceURL = readerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets writer service URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param writerServiceURL writer service URL of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>writerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is not an URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private void setWriterServiceURL(String writerServiceURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((writerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (writerServiceURL.trim().length() > 0)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster URLValidator validator = URLValidator.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validator.validate(writerServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ValidationException e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidWriterUrl",null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.writerServiceURL = writerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets writer service URL for IDFF protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param writerServiceURL writer service URL of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>writerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is not an URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setIDFFWriterServiceURL(String writerServiceURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((writerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (writerServiceURL.trim().length() > 0)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster URLValidator validator = URLValidator.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validator.validate(writerServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ValidationException e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidWriterUrl",null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.idffWriterServiceURL = writerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets writer service URL for SAML2 protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param writerServiceURL writer service URL of the Circle of Trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>writerServiceURL</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is not an URL.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setSAML2WriterServiceURL(String writerServiceURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((writerServiceURL != null) &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (writerServiceURL.trim().length() > 0)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster URLValidator validator = URLValidator.getInstance();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster validator.validate(writerServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (ValidationException e) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidWriterUrl",null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.saml2WriterServiceURL = writerServiceURL;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets status of a circle of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustStatus the circle of trust status. The valid value
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * for status is "active" or "inactive".
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws COTException if <code>circleOfTrustStatus</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * is blank or it is not "active" or "inactive"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setCircleOfTrustStatus(String circleOfTrustStatus)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (circleOfTrustStatus !=null &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (circleOfTrustStatus.equalsIgnoreCase(COTConstants.ACTIVE ) ||
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustStatus.equalsIgnoreCase(COTConstants.INACTIVE))) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster this.circleOfTrustStatus = circleOfTrustStatus;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidCotStatus", null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Sets trusted providers of a circle of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param circleOfTrustProvider A set of trusted providers
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public void setTrustedProviders(Set circleOfTrustProvider) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster trustedProviderMap = Collections.unmodifiableMap(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.trustedProviderSetToProtocolMap(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustProvider, realm));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster trustedProviders = Collections.unmodifiableSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.trustedProviderProtocolMapToSet(trustedProviderMap));
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a set of trusted providers in the circle of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a set of trusted providers in the circle of trust, or null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * if there is no trusted providers in the circle of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Set getTrustedProviders() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (trustedProviders == null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Set ret = new HashSet();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ret.addAll(trustedProviders);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return ret;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns a set of trusted providers in the circle of trust for a specific
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * protocol.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param protocol name of the federation protocol
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return a set of trusted providers in the circle of trust, or null if
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * such entity does not exist.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public Set getTrustedProviders(String protocol) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((trustedProviderMap == null) || (protocol == null)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Set tmp = (Set) trustedProviderMap.get(protocol);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (tmp != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // handle legacy case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((circleOfTrustType == null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || circleOfTrustType.equalsIgnoreCase(protocol)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Set ret = new HashSet();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ret.addAll(tmp);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return ret;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Adds entity identifier to trusted providers set within the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * circle of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param entityID the entity id of a provider .
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param protocol name of protocol for the entity.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the set did not already contain the entityID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean add(String entityID, String protocol) throws COTException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!COTUtils.isValidProtocolType(protocol)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("invalidProtocolType", null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((trustedProviderMap == null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || (trustedProviderMap.get(protocol) == null)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster || !((Set) trustedProviderMap.get(protocol)).contains(entityID)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Set ret = new HashSet();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (trustedProviders != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ret.addAll(trustedProviders);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster boolean result = ret.add(entityID + COTConstants.DELIMITER
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + protocol);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setTrustedProviders(ret);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return result;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new COTException("entityExistsInCot", null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Removes member from the trusted provider set within this circle
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of trust.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param entityID The entity id of a provider.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param protocol name of protocol for the entity.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return true if the set contained the entityID.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public boolean remove(String entityID, String protocol) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!COTUtils.isValidProtocolType(protocol)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if ((trustedProviderMap == null) ||
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster (trustedProviderMap.get(protocol) == null) ||
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster !((Set) trustedProviderMap.get(protocol)).contains(entityID)) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return false;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Set ret = new HashSet();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (trustedProviders != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster ret.addAll(trustedProviders);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster boolean result = ret.remove(entityID + COTConstants.DELIMITER
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + protocol);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!result) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // handle legacy case
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster result = ret.remove(entityID);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster setTrustedProviders(ret);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return result;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns attributes of this object into a map.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster protected Map getAttributes() {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Map attrMap = new HashMap();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.fillEntriesInSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTConstants.COT_DESC,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustDescription);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.fillEntriesInSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTConstants.COT_STATUS,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster circleOfTrustStatus);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.fillEntriesInSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTConstants.COT_SAML2_WRITER_SERVICE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster saml2WriterServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.fillEntriesInSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTConstants.COT_IDFF_WRITER_SERVICE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster idffWriterServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.fillEntriesInSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTConstants.COT_SAML2_READER_SERVICE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster saml2ReaderServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTUtils.fillEntriesInSet(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster COTConstants.COT_IDFF_READER_SERVICE,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster idffReaderServiceURL);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster attrMap.put(COTConstants.COT_TRUSTED_PROVIDERS, trustedProviders);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return attrMap;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}