use of com.sun.identity.security.AdminDNAction in project OpenAM by OpenRock.
the class SMSLdapObject method initialize.
/**
* Synchronized initialized method
*/
private synchronized void initialize() throws SMSException {
if (initialized) {
return;
}
// Obtain the I18N resource bundle & Debug
debug = Debug.getInstance("amSMSLdap");
AMResourceBundleCache amCache = AMResourceBundleCache.getInstance();
bundle = amCache.getResBundle(IUMSConstants.UMS_BUNDLE_NAME, java.util.Locale.ENGLISH);
OU_ATTR[0] = getNamingAttribute();
O_ATTR[0] = getOrgNamingAttribute();
String enableP = SystemProperties.get(SMSEntry.DB_PROXY_ENABLE);
enableProxy = (enableP != null) && enableP.equalsIgnoreCase("true");
if (debug.messageEnabled()) {
debug.message("SMSLdapObject: proxy enable value: " + enableProxy);
}
try {
if (enableProxy) {
// Initialize the principal, used only with AMSDK
// for proxy connections
adminPrincipal = new AuthPrincipal((String) AccessController.doPrivileged(new AdminDNAction()));
// Get UMS datalayer
dlayer = DataLayer.getInstance();
if (debug.messageEnabled()) {
debug.message("SMSLdapObject: DataLayer instance " + "obtained.");
}
} else {
// Get SM datalayer
smdlayer = SMDataLayer.getInstance();
if (debug.messageEnabled()) {
debug.message("SMSLdapObject: SMDataLayer instance " + "obtained.");
}
}
if ((dlayer == null) && (smdlayer == null)) {
debug.error("SMSLdapObject: Unable to initialize LDAP");
throw (new SMSException(IUMSConstants.UMS_BUNDLE_NAME, IUMSConstants.CONFIG_MGR_ERROR, null));
}
debug.message("SMSLdapObject: LDAP Initialized successfully");
// Get connection retry parameters
DataLayer.initConnectionParams();
connNumRetry = DataLayer.getConnNumRetry();
connRetryInterval = DataLayer.getConnRetryInterval();
retryErrorCodes = DataLayer.getRetryErrorCodes();
// Need to check if the root nodes exists. If not, create them
String serviceDN = SMSEntry.SERVICES_RDN + SMSEntry.COMMA + getRootSuffix();
if (!entryExists(serviceDN)) {
Map attrs = new HashMap();
Set attrValues = new HashSet();
attrValues.add(SMSEntry.OC_TOP);
attrValues.add(SMSEntry.OC_ORG_UNIT);
attrs.put(SMSEntry.ATTR_OBJECTCLASS, attrValues);
create(adminPrincipal, serviceDN, attrs);
}
} catch (Exception e) {
// Unable to initialize (trouble!!)
debug.error("SMSEntry: Unable to initalize(exception):", e);
throw (new SMSException(IUMSConstants.UMS_BUNDLE_NAME, IUMSConstants.CONFIG_MGR_ERROR, null));
}
initialized = true;
}
use of com.sun.identity.security.AdminDNAction in project OpenAM by OpenRock.
the class AdminInterfaceUtils method initialize.
/**
* Initializes the default containers using SMS
*/
private static void initialize() {
if (!initialized) {
try {
// Generate a SSOToken to initialize ServiceSchemaManager
String adminDN = (String) AccessController.doPrivileged(new AdminDNAction());
String adminPassword = (String) AccessController.doPrivileged(new AdminPasswordAction());
SSOTokenManager mgr = SSOTokenManager.getInstance();
ServiceConfigManager scm = new ServiceConfigManager(SERVICE_NAME, mgr.createSSOToken(new AuthPrincipal(adminDN), adminPassword));
if (!addedListener) {
addedListener = true;
scm.addListener(new AdminInterfaceUtils());
}
ServiceConfig globalConfig = scm.getGlobalConfig(null);
ServiceConfig templatesConfig = globalConfig.getSubConfig(TEMPLATES);
ServiceConfig structTemplateSubConfig = templatesConfig.getSubConfig(STRUCTURE_TEMPLATES);
ServiceConfig groupContConfig = structTemplateSubConfig.getSubConfig(GCCREATE_ATTR_NAME);
ServiceConfig peopleContConfig = structTemplateSubConfig.getSubConfig(PCCREATE_ATTR_NAME);
ServiceConfig orgAdminConfig = structTemplateSubConfig.getSubConfig(ORG_ADMIN_ATTR_NAME);
ServiceConfig helpDeskAdminConfig = structTemplateSubConfig.getSubConfig(HELP_DESK_ADMIN_ATTR_NAME);
ServiceConfig policyAdminConfig = structTemplateSubConfig.getSubConfig(POLICY_ADMIN_ATTR_NAME);
defaultGCCreateDuringOrgConfig = getConfigAttributeValue(groupContConfig, defaultGCCreateDuringOrgConfig);
defaultPCCreateDuringOrgConfig = getConfigAttributeValue(peopleContConfig, defaultPCCreateDuringOrgConfig);
defaultORGADMIN = getConfigAttributeValue(orgAdminConfig, defaultORGADMIN);
defaultHELP_DESK_ADMIN = getConfigAttributeValue(helpDeskAdminConfig, defaultHELP_DESK_ADMIN);
defaultPOLICY_ADMIN = getConfigAttributeValue(policyAdminConfig, defaultPOLICY_ADMIN);
ServiceSchemaManager sm = new ServiceSchemaManager(CONSOLE_SERVICE_NAME, mgr.createSSOToken(new AuthPrincipal(adminDN), adminPassword));
if (!addedListener) {
addedListener = true;
sm.addListener(new AdminInterfaceUtils());
}
ServiceSchema schema = sm.getGlobalSchema();
defaultAC = getAttributeValue(schema, AC_ATTR_NAME, defaultAC);
defaultGC = getAttributeValue(schema, GC_ATTR_NAME, defaultGC);
defaultPC = getAttributeValue(schema, PC_ATTR_NAME, defaultPC);
} catch (Exception e) {
// Use the default values, and write out debug warning msg
debug.warning("AdminInterfaceUtils: Unable to get " + "default People, Groups, Org Admin Role, " + "Help Desk Admin Role, Policy Admin Role and " + "Agents containers from SM", e);
}
if (debug.messageEnabled()) {
debug.message("AdminInterfaceUtils: Defaults container: " + defaultPC + ", " + defaultGC + ", " + defaultAC + ", " + defaultPCCreateDuringOrgConfig + ", " + defaultGCCreateDuringOrgConfig + ", " + defaultORGADMIN + ", " + defaultHELP_DESK_ADMIN + ", " + defaultPOLICY_ADMIN);
}
initialized = true;
}
}
Aggregations