Hi,

I refactored the registry constructors, so now the instantiation is much simpler. I also added a RegistryRealm class, which extends the user manager's DefaultRealm. It restricts some actions based on the parameters, so that the registry user store doesn't get inconsistent. For example, it blocks the deletion of predefined users like system, admin, anonymous and performs default actions like adding each user to the "EVERYONE" role upon creation. It also simplifies the initiation of realms.

Below are the steps for creating registry instances for various scenarios.

1) In memory registry without security

   Registry registry = new InMemoryJDBCRegistry();

2) In memory registry with security

   RegistryRealm registryRealm = new InMemoryRegistryRealm();
   Registry registry = new InMemoryJDBCRegistry(registryRealm);
SecureRegistry secureRegistry = new SecureRegistry("user", "password", registry, registryRealm);

3) Secure registry using a data source

   RegistryRealm registryRealm = new RegistryRealm(datasource);
   Registry registry = new JDBCRegistry(datasource, registryRealm);
SecureRegistry secureRegistry = new SecureRegistry("user", "password", registry, registryRealm);

4) Secure registry using a database connection URL (In this case, the RegistryDataSource creates a Apache DBCP data source and handles connection pooling)

RegistryDataSource datasource = new RegistryDataSource(dbURL, driverName, userName, password);
   RegistryRealm registryRealm = new RegistryRealm(datasource);
   Registry registry = new JDBCRegistry(datasource, registryRealm);
SecureRegistry secureRegistry = new SecureRegistry("user", "password", registry, registryRealm);

Note that we have to give the realm to the JDBC registry as well, as media type handlers may use it to set authorizations on automatically imported resources.

Thanks,
Chathura


_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to