a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2006 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: FSAccountUtils.java,v 1.3 2008/06/25 05:46:40 qcheng Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.federation.accountmgmt;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.federation.common.IFSConstants;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.federation.common.FSUtils;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.assertion.NameIdentifier;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.NoSuchElementException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.StringTokenizer;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The utility class contains the helper functions used in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * account management.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic class FSAccountUtils {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Attribute name to store Account's federation information key
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String USER_FED_INFO_KEY_ATTR =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "iplanet-am-user-federation-info-key";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Attribute name to store Account's federation information.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static final String USER_FED_INFO_ATTR =
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "iplanet-am-user-federation-info";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster private static final String FED_INFO_DELIM = "|";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Parses federation information string and put corresponding parts in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * object fields.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param fedInfoString - String containg federation information.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Account federation information object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws FSAccountMgmtException if <code>fedInfoString</code> cannot be
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * parsed.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static FSAccountFedInfo stringToObject(String fedInfoString)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws FSAccountMgmtException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSAccountFedInfo fedInfoObject = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster StringTokenizer str = new StringTokenizer(fedInfoString,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FED_INFO_DELIM);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject = new FSAccountFedInfo();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.setProviderID(token);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NameIdentifier localNI = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NameIdentifier remoteNI = null;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Local Name Identifier fields.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!token.equalsIgnoreCase("null")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String localName = token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String localNameQualifier = "";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String localNameFormat = "";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!token.equalsIgnoreCase("null")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster localNameQualifier = token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!token.equalsIgnoreCase("null")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster localNameFormat = token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster localNI = new NameIdentifier(localName,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster localNameQualifier, localNameFormat);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (SAMLException se) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSUtils.debug.error("FSAccountUtils.stringToObject(): "
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + "SAMLException: ", se);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new FSAccountMgmtException(se.getMessage());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // just ignore two tokens.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.setLocalNameIdentifier(localNI);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // Remote Name Identifier fields.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!token.equalsIgnoreCase("null")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String remoteName = token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String remoteNameQualifier = "";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String remoteNameFormat = "";
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!token.equalsIgnoreCase("null")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster remoteNameQualifier = token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (!token.equalsIgnoreCase("null")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster remoteNameFormat = token;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster try {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster remoteNI = new NameIdentifier(remoteName,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster remoteNameQualifier, remoteNameFormat);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (SAMLException se) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSUtils.debug.error("FSAccountUtils.stringToObject(): "
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster + "SAMLException: ", se);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new FSAccountMgmtException(se.getMessage());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster // just ignore two tokens.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.setRemoteNameIdentifier(remoteNI);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (token.equalsIgnoreCase("IDPRole")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.setRole(true);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (token.equalsIgnoreCase("SPRole")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.setRole(false);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSUtils.debug.error("FSAccountUtils.stringToObject():" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " You have modified IDP/SP Role" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " in iDS :: set it to IDPRole/SPRole ");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new FSAccountMgmtException(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IFSConstants.INVALID_ACT_FED_INFO_IN_IDS, null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (token.equalsIgnoreCase("Active")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.activateFedStatus();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else if (token.equalsIgnoreCase("InActive")) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.deActivateFedStatus();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } else {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSUtils.debug.error("FSAccountUtils.stringToObject():" +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster " You have modified Active/InActive in iDS ");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new FSAccountMgmtException(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IFSConstants.INVALID_ACT_FED_INFO_IN_IDS, null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (str.hasMoreTokens()) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token = str.nextToken();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (token != null &&
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster token.equalsIgnoreCase(IFSConstants.AFFILIATED))
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoObject.setAffiliation(true);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster } catch (NoSuchElementException nsee) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSUtils.debug.error(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "FSAccountUtils.stringToObject() : NoSuchElementException: ",
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster nsee);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new FSAccountMgmtException(nsee.getMessage());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster return fedInfoObject;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns string equalivent of <code>FSAccountFedInfo</code> object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return Account Federation information.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param fedInfoObject federation info as an object.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @exception FSAccountMgmtException if <code>fedInfoObject</code> cannot
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * be converted to string.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public static String objectToInfoString(FSAccountFedInfo fedInfoObject)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws FSAccountMgmtException {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster StringBuffer fedInfoSB = new StringBuffer(1000);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoSB.append(FED_INFO_DELIM);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoSB.append(fedInfoObject.getProviderID());
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NameIdentifier lni = fedInfoObject.getLocalNameIdentifier();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster NameIdentifier rni = fedInfoObject.getRemoteNameIdentifier();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (lni == null && rni == null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster FSUtils.debug.error("FSAccountUtils.objectToInfoString(): " +
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster "both NameIdentifiers are null");
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throw new FSAccountMgmtException(
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster IFSConstants.NULL_NAME_IDENTIFIER, null);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (lni != null) {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoSB.append(FED_INFO_DELIM);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster String name = lni.getName();
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster if (name != null && name.length() > 0 ){
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster fedInfoSB.append(name);
} else {
FSUtils.debug.error(
"FSAccountUtils.objectToInfoString(): local Name is null");
throw new FSAccountMgmtException(
IFSConstants.NULL_NAME, null);
}
fedInfoSB.append(FED_INFO_DELIM);
String nameQual = lni.getNameQualifier();
if (nameQual != null && nameQual.length() > 0 ){
fedInfoSB.append(nameQual);
} else {
fedInfoSB.append("null");
}
fedInfoSB.append(FED_INFO_DELIM);
String nameFormat = lni.getFormat();
if (nameFormat != null && nameFormat.length() > 0 ){
fedInfoSB.append(nameFormat);
} else {
fedInfoSB.append("null");
}
} else {
fedInfoSB.append(FED_INFO_DELIM);
fedInfoSB.append("null");
fedInfoSB.append(FED_INFO_DELIM);
fedInfoSB.append("null");
fedInfoSB.append(FED_INFO_DELIM);
fedInfoSB.append("null");
}
if (rni != null) {
fedInfoSB.append(FED_INFO_DELIM);
String name = rni.getName();
if (name != null && name.length() > 0 ){
fedInfoSB.append(name);
} else {
FSUtils.debug.error(
"FSAccountUtils.objectToInfoString(): remote Name is null");
throw new FSAccountMgmtException(
IFSConstants.NULL_NAME,null);
}
fedInfoSB.append(FED_INFO_DELIM);
String nameQual = rni.getNameQualifier();
if (nameQual != null && nameQual.length() > 0 ){
fedInfoSB.append(nameQual);
} else {
fedInfoSB.append("null");
}
fedInfoSB.append(FED_INFO_DELIM);
String nameFormat = rni.getFormat();
if (nameFormat != null && nameFormat.length() > 0 ){
fedInfoSB.append(nameFormat);
} else {
fedInfoSB.append("null");
}
} else {
fedInfoSB.append(FED_INFO_DELIM)
.append("null").append(FED_INFO_DELIM)
.append("null").append(FED_INFO_DELIM)
.append("null");
}
fedInfoSB.append(FED_INFO_DELIM);
if (fedInfoObject.isRoleIDP()) {
fedInfoSB.append("IDPRole");
} else {
fedInfoSB.append("SPRole");
}
fedInfoSB.append(FED_INFO_DELIM);
if (fedInfoObject.isFedStatusActive()) {
fedInfoSB.append("Active");
} else {
fedInfoSB.append("InActive");
}
fedInfoSB.append(FED_INFO_DELIM);
if(fedInfoObject.getAffiliation()) {
fedInfoSB.append(IFSConstants.AFFILIATED);
fedInfoSB.append(FED_INFO_DELIM);
}
return fedInfoSB.toString();
}
/**
* Returns nameSpace and name of account federation information key.
*
* @return string equalivent of account federation information key.
* @param fedInfoKeyObject Account federation information key.
* @exception FSAccountMgmtException if the namespace and/or name
* in the fedInfoKeyObject are null.
*/
public static String objectToKeyString(FSAccountFedInfoKey fedInfoKeyObject)
throws FSAccountMgmtException {
StringBuffer attrValueSB = new StringBuffer(300);
String nameSpace = fedInfoKeyObject.getNameSpace();
if ((nameSpace == null) || (nameSpace.length() <= 0)){
FSUtils.debug.error("FSAccountUtils.objectToKeyString():" +
"Invalid Argument : nameSpace is NULL");
throw new FSAccountMgmtException(
IFSConstants.NULL_NAME_SPACE, null);
}
String name = fedInfoKeyObject.getName();
if ((name == null) || (name.length() <= 0)){
FSUtils.debug.error("FSAccountUtils.objectToKeyString():" +
"Invalid Argument : name is NULL");
throw new FSAccountMgmtException(
IFSConstants.NULL_NAME, null);
}
attrValueSB.append(FED_INFO_DELIM)
.append(nameSpace)
.append(FED_INFO_DELIM)
.append(name)
.append(FED_INFO_DELIM);
String fedKeyValue = attrValueSB.toString();
if (FSUtils.debug.messageEnabled()) {
FSUtils.debug.message(
"FSAccountUtils.objectToKeyString(): Value: " + fedKeyValue);
}
return fedKeyValue;
}
/**
* Creates filter.
* @param providerID provider id
* @return filter
*/
static String createFilter(String providerID) {
return FED_INFO_DELIM + providerID + FED_INFO_DELIM;
}
/**
* Creates filter.
* @param providerID provider id
* @param nameID name id
* @return filter
*/
static String createFilter(String providerID, String nameID) {
String str= FED_INFO_DELIM + providerID + FED_INFO_DELIM
+ nameID + FED_INFO_DELIM;
return str;
}
/**
* Creates filter.
* @param fedInfoKey federation info key
* @return filter
* @exception FSAccountMgmtException if the namespace and/or name in
* the fedInfoKey are null.
*/
static String createFilter(
FSAccountFedInfoKey fedInfoKey)
throws FSAccountMgmtException
{
String nameSpace = fedInfoKey.getNameSpace();
if ((nameSpace == null) || (nameSpace.length() <= 0)){
FSUtils.debug.error("FSAccountUtils.createFilter():" +
"Invalid Argument : nameSpace is NULL");
throw new FSAccountMgmtException(
IFSConstants.NULL_NAME_SPACE, null);
}
String name = fedInfoKey.getName();
if ((name == null) || (name.length() <= 0)){
FSUtils.debug.error("FSAccountUtils.createFilter():" +
"Invalid Argument : name is NULL");
throw new FSAccountMgmtException(
IFSConstants.NULL_NAME, null);
}
return FED_INFO_DELIM + nameSpace + FED_INFO_DELIM
+ name + FED_INFO_DELIM;
}
}