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);
         }
     }
 

Reply via email to