/** * Return a static reference to this instance. If the instance has not been instantiated, call the * boostrap: * * <ul> * <li>Load from fortress.properties * <li>Load some overrides from System properties * <li>Load from ou=Config ldap node * </ul> * * @return this */ public static Config getInstance() { if (sINSTANCE == null) { synchronized (Config.class) { if (sINSTANCE == null) { sINSTANCE = new Config(); if (!sINSTANCE.isRemoteConfigLoaded()) { sINSTANCE.loadRemoteConfig(); } } } } return sINSTANCE; }
/** Package private default constructor. */ GroupDAO() { super(); GROUP_OBJECT_CLASS_IMPL = Config.getInstance().getProperty(GROUP_OBJECT_CLASS); GROUP_PROTOCOL_ATTR_IMPL = Config.getInstance().getProperty(GROUP_PROTOCOL_ATTR); GROUP_PROPERTY_ATTR_IMPL = Config.getInstance().getProperty(GROUP_PROPERTY_ATTR); GROUP_OBJ_CLASS = new String[] {SchemaConstants.TOP_OC, GROUP_OBJECT_CLASS_IMPL}; GROUP_ATRS = new String[] { SchemaConstants.CN_AT, SchemaConstants.DESCRIPTION_AT, GlobalIds.TYPE, GROUP_PROTOCOL_ATTR_IMPL, GROUP_PROPERTY_ATTR_IMPL, SchemaConstants.MEMBER_AT }; }
/** * Factory class used to instantiate the ExampleAdminMgrImpl. * * @author <a href="mailto:[email protected]">Apache Directory Project</a> * @created December 26, 2010 */ public class ExampleAdminMgrFactory { private static String exampleAdminClassName = Config.getProperty(EIds.EXAMPLE_ADMIN_IMPLEMENTATION); public static ExampleAdminMgr createInstance() throws SecurityException { ExampleAdminMgr adminMgr; if (exampleAdminClassName == null || exampleAdminClassName.compareTo("") == 0) { exampleAdminClassName = EIds.EXAMPLE_ADMIN_DEFAULT_CLASS; } adminMgr = (ExampleAdminMgr) ClassUtil.createInstance(exampleAdminClassName); return adminMgr; } }
/** * This method creates raw data format that represents UserAdminRole temporal and ARBAC * constraints using instance variables inside entity. The raw data is eventually stored in the * 'ftARC' attribute on the 'ftUserAttrs' object class. This is the raw format that Fortress uses * to condense the temporal and ARBAC data into a compact String for efficient storage and * retrieval and is not intended to be called by external programs. * * @return String contains a raw formatted String that maps to 'ftARC' attribute on 'ftUserAttrs' * object class */ @Override public String getRawData() { String szRole; String delimeter = Config.getInstance().getDelimiter(); StringBuilder sb = new StringBuilder(); sb.append(name); sb.append(delimeter); sb.append(this.getTimeout()); sb.append(delimeter); if (this.getBeginTime() != null) { sb.append(this.getBeginTime()); } sb.append(delimeter); if (this.getEndTime() != null) { sb.append(this.getEndTime()); } sb.append(delimeter); if (this.getBeginDate() != null) { sb.append(this.getBeginDate()); } sb.append(delimeter); if (this.getEndDate() != null) { sb.append(this.getEndDate()); } sb.append(delimeter); if (this.getBeginLockDate() != null) { sb.append(this.getBeginLockDate()); } sb.append(delimeter); if (this.getEndLockDate() != null) { sb.append(this.getEndLockDate()); } sb.append(delimeter); if (this.getDayMask() != null) { sb.append(this.getDayMask()); } if (this.getOsUSet() != null) { for (String org : this.getOsUSet()) { sb.append(delimeter); sb.append(U); sb.append(GlobalIds.PROP_SEP); sb.append(org); } } if (this.getOsPSet() != null) { for (String org : this.getOsPSet()) { sb.append(delimeter); sb.append(P); sb.append(GlobalIds.PROP_SEP); sb.append(org); } } if (StringUtils.isNotEmpty(this.getRoleRangeRaw())) { sb.append(delimeter); sb.append(R); sb.append(GlobalIds.PROP_SEP); sb.append(this.getRoleRangeRaw()); } szRole = sb.toString(); return szRole; }
/** * This method loads UserAdminRole entity temporal and ARBAC constraint instance variables with * data that was retrieved from the 'ftARC' attribute on the 'ftUserAttrs' object class. This is * the raw format that Fortress uses to condense the temporal and ARBAC data into a compact String * for efficient storage and retrieval and is not intended to be called by external programs. * * @param szRawData contains a raw formatted String that maps to 'ftARC' attribute on * 'ftUserAttrs' object class * @param contextId contains the tenant id. * @param parentUtil provides method to getParents. */ public void load(String szRawData, String contextId, ParentUtil parentUtil) { if ((szRawData != null) && (szRawData.length() > 0)) { String[] tokens = StringUtils.splitPreserveAllTokens(szRawData, Config.getInstance().getDelimiter()); for (int i = 0; i < tokens.length; i++) { if (StringUtils.isNotEmpty(tokens[i])) { switch (i) { case 0: name = tokens[i]; parents = parentUtil.getParentsCB(name.toUpperCase(), contextId); break; case 1: this.setTimeout(Integer.parseInt(tokens[i])); break; case 2: this.setBeginTime(tokens[i]); break; case 3: this.setEndTime(tokens[i]); break; case 4: this.setBeginDate(tokens[i]); break; case 5: this.setEndDate(tokens[i]); break; case 6: this.setBeginLockDate(tokens[i]); break; case 7: this.setEndLockDate(tokens[i]); break; case 8: this.setDayMask(tokens[i]); break; default: String szValue = tokens[i]; int indx = szValue.indexOf(P + GlobalIds.PROP_SEP); if (indx >= 0) { String szOsP = szValue.substring(indx + 2); this.setOsP(szOsP); } indx = szValue.indexOf(U + GlobalIds.PROP_SEP); if (indx >= 0) { String szOsU = szValue.substring(indx + 2); this.setOsU(szOsU); } indx = szValue.indexOf(R + GlobalIds.PROP_SEP); if (indx >= 0) { String szRangeRaw = szValue.substring(indx + 2); this.setRoleRangeRaw(szRangeRaw); } break; } } } } }