Author: angelo.vandersijpt at luminis.eu
Date: Mon Oct 18 15:02:42 2010
New Revision: 183
Log:
AMDATU-103 Refactored the AuthorizationServiceImpl to no longer use
configuration for keeping its state.
Modified:
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/osgi/Activator.java
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/service/AuthorizationServiceImpl.java
Modified:
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/osgi/Activator.java
==============================================================================
---
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/osgi/Activator.java
(original)
+++
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/osgi/Activator.java
Mon Oct 18 15:02:42 2010
@@ -49,10 +49,8 @@
.setImplementation(AuthorizationServiceImpl.class)
.add(createServiceDependency().setService(HttpContextServiceFactory.class).setRequired(true))
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-
.add(createServiceDependency().setService(ConfigurationAdmin.class).setRequired(true))
.add(createServiceDependency().setService(ConfigTemplateManager.class).setRequired(true))
-
.add(createServiceDependency().setService(UserAdmin.class).setRequired(true))
-
.add(createServiceDependency().setService(WebContainer.class).setRequired(true)));
+
.add(createServiceDependency().setService(UserAdmin.class).setRequired(true)));
}
/**
Modified:
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/service/AuthorizationServiceImpl.java
==============================================================================
---
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/service/AuthorizationServiceImpl.java
(original)
+++
trunk/platform-bundles/authorization-service/src/main/java/org/amdatu/platform/authorization/service/AuthorizationServiceImpl.java
Mon Oct 18 15:02:42 2010
@@ -61,16 +61,11 @@
private static final String DEFAULT_PASSWORD = "Administrator";
private static final String DEFAULT_ADMIN_GROUP = "Administrators";
- // The PID of this bundle
- private static final String PID = "org.amdatu.platform.authorization";
- private static final String INITIALIZED_KEY = "initialized";
-
// Service dependencies, injected by the Felix dependency manager
private volatile LogService m_logService;
private volatile BundleContext m_bundleContext;
private volatile HttpContextServiceFactory m_httpContextServiceFactory;
private volatile UserAdmin m_userAdmin;
- private volatile ConfigurationAdmin m_configurationAdmin;
// The private HTTP context service for this bundle
private Component m_httpContextComponent;
@@ -87,32 +82,17 @@
@SuppressWarnings("unchecked")
public void start() {
- try {
- // Note that the configuration of the authorization bundle is not
managed
- // by fileinstall but by ConfigAdmin. We use the INITIALIZED_KEY
configuration
- // entry to ensure that we create the default Administrator user
only upon first boot
- Configuration config = m_configurationAdmin.getConfiguration(PID);
- Dictionary properties = config.getProperties();
- if (properties == null ||
!"true".equals(properties.get(INITIALIZED_KEY).toString())) {
- // If no roles at all exist, we create a default user
"Administrator" with
- // password "Administrator" which is member of the group
"Administrator"
- User adminUser = (User)
m_userAdmin.createRole(DEFAULT_USERNAME, Role.USER);
- if (adminUser != null) {
- adminUser.getCredentials().put(PASSWORD_CREDENTIAL_KEY,
DEFAULT_PASSWORD);
- adminUser.getProperties().put(USER_NAME_CREDENTIAL_KEY,
DEFAULT_USERNAME);
- Group adminGroup = (Group)
m_userAdmin.createRole(DEFAULT_ADMIN_GROUP, Role.GROUP);
- adminGroup.addMember(adminUser);
-
- // Remember we initialized the service
- properties = new Hashtable<String, String>();
- properties.put(INITIALIZED_KEY, "true");
- config.update(properties);
- } else {
- m_logService.log(LogService.LOG_ERROR, "Failed to create
initial user " + DEFAULT_USERNAME);
- }
+ // If we don't have a user named 'Administrator', we create one now.
+ if (m_userAdmin.getRole(DEFAULT_USERNAME) == null) {
+ User adminUser = (User) m_userAdmin.createRole(DEFAULT_USERNAME,
Role.USER);
+ if (adminUser != null) {
+ adminUser.getCredentials().put(PASSWORD_CREDENTIAL_KEY,
DEFAULT_PASSWORD);
+ adminUser.getProperties().put(USER_NAME_CREDENTIAL_KEY,
DEFAULT_USERNAME);
+ Group adminGroup = (Group)
m_userAdmin.createRole(DEFAULT_ADMIN_GROUP, Role.GROUP);
+ adminGroup.addMember(adminUser);
+ } else {
+ m_logService.log(LogService.LOG_ERROR, "Failed to create
initial user " + DEFAULT_USERNAME);
}
- } catch (IOException e) {
- m_logService.log(LogService.LOG_ERROR, "Failed to read
configuration file", e);
}
}