/** * Returns the attribute value configured in the given entity SP or IDP configuration. * * @param realm realm name. * @param entityID hosted <code>EntityID</code>. * @param attributeName name of the attribute. */ protected String getAttribute(String realm, String entityID, String attributeName) { if (realm == null || entityID == null || attributeName == null) { if (debug.messageEnabled()) { debug.message("DefaultAccountMapper.getAttribute: " + "null input parameters."); } return null; } try { BaseConfigType config = null; if (role.equals(IDP)) { config = WSFederationUtils.getMetaManager().getIDPSSOConfig(realm, entityID); } else { config = WSFederationUtils.getMetaManager().getSPSSOConfig(realm, entityID); } Map attributes = WSFederationMetaUtils.getAttributes(config); if (attributes == null || attributes.isEmpty()) { if (debug.messageEnabled()) { debug.message( "DefaultAccountMapper.getAttribute:" + " attribute configuration is not defined for " + "Entity " + entityID + " realm =" + realm + " role=" + role); } return null; } List list = (List) attributes.get(attributeName); if (list != null && list.size() > 0) { return (String) list.iterator().next(); } if (debug.messageEnabled()) { debug.message( "DefaultSPAccountMapper.getAttribute: " + attributeName + " is not configured."); } return null; } catch (WSFederationMetaException sme) { if (debug.warningEnabled()) { debug.warning("DefaultSPAccountMapper.getAttribute:" + "Meta Exception", sme); } } return null; }