private GSSCredential acceptorCredentials;
private boolean singleUser = false;
+ private boolean systemRolesAvailable = false;
public NodeUserAdmin(String systemRolesBaseDn) {
super(systemRolesBaseDn);
log.debug("User directory " + userDirectory.getBaseDn() + " [" + u.getScheme() + "] enabled."
+ (realm != null ? " " + realm + " realm." : ""));
- // if (isSystemRolesBaseDn(baseDn)) {
- if (userAdminReg != null)
- userAdminReg.unregister();
- // register self as main user admin
- Dictionary<String, Object> userAdminregProps = currentState();
- userAdminregProps.put(NodeConstants.CN, NodeConstants.DEFAULT);
- userAdminregProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
- userAdminReg = bc.registerService(UserAdmin.class, this, userAdminregProps);
- // }
+ if (isSystemRolesBaseDn(baseDn))
+ systemRolesAvailable = true;
+
+ // start publishing only when system roles are available
+ if (systemRolesAvailable) {
+ // The list of baseDns is published as properties
+ // TODO clients should rather reference USerDirectory services
+ if (userAdminReg != null)
+ userAdminReg.unregister();
+ // register self as main user admin
+ Dictionary<String, Object> userAdminregProps = currentState();
+ userAdminregProps.put(NodeConstants.CN, NodeConstants.DEFAULT);
+ userAdminregProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+ userAdminReg = bc.registerService(UserAdmin.class, this, userAdminregProps);
+ }
}
@Override