[Yanel-commits] rev 28165 -
public/yanel/trunk/src/core/java/org/wyona/yanel/core/map
michi at wyona.com
michi at wyona.com
Fri Oct 26 10:57:45 CEST 2007
Author: michi
Date: 2007-10-26 10:57:44 +0200 (Fri, 26 Oct 2007)
New Revision: 28165
Modified:
public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
Log:
policy manager factory is now configurable per realm
Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java 2007-10-26 08:51:30 UTC (rev 28164)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/map/Realm.java 2007-10-26 08:57:44 UTC (rev 28165)
@@ -102,33 +102,49 @@
*
*/
protected void configure(Configuration config) throws Exception {
+ Yanel yanel = Yanel.getInstance();
+ File repoConfig = null;
- Yanel yanel = Yanel.getInstance();
-
- PolicyManagerFactory pmFactory = (PolicyManagerFactory) yanel.getBeanFactory().getBean("PolicyManagerFactory");
+
+
+ // Set PolicyManager for this realm
+ Configuration repoConfigElement = config.getChild("ac-policies", false);
+ if (repoConfigElement != null) {
+ repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigElement.getValue()));
+ RepositoryFactory policiesRepoFactory = yanel.getRepositoryFactory("ACPoliciesRepositoryFactory");
+ Repository policiesRepo = policiesRepoFactory.newRepository(getID(), repoConfig);
+
+ PolicyManagerFactory pmFactory = null;
+ try {
+ String customPolicyManagerFactoryImplClassName = repoConfigElement.getAttribute("class");
+ pmFactory = (PolicyManagerFactory) Class.forName(customPolicyManagerFactoryImplClassName).newInstance();
+ } catch (ConfigurationException e) {
+ pmFactory = (PolicyManagerFactory) yanel.getBeanFactory().getBean("PolicyManagerFactory");
+ log.warn("Default PolicyManager will be used for realm: " + getName());
+ }
+ PolicyManager policyManager = pmFactory.newPolicyManager(policiesRepo);
+ setPolicyManager(policyManager);
+ }
+
+
+
+
+
IdentityManagerFactory imFactory = (IdentityManagerFactory) yanel.getBeanFactory().getBean("IdentityManagerFactory");
RepositoryFactory repoFactory = yanel.getRepositoryFactory("DefaultRepositoryFactory");
RepositoryFactory rtiRepoFactory = yanel.getRepositoryFactory("RTIRepositoryFactory");
- RepositoryFactory policiesRepoFactory = yanel.getRepositoryFactory("ACPoliciesRepositoryFactory");
RepositoryFactory identitiesRepoFactory = yanel.getRepositoryFactory("ACIdentitiesRepositoryFactory");
RepositoryFactory extraRepoFactory = yanel.getRepositoryFactory("ExtraRepositoryFactory");
String repoConfigSrc = config.getChild("data", false).getValue();
- File repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigSrc));
+ repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigSrc));
setRepository(repoFactory.newRepository(getID(), repoConfig));
repoConfigSrc = config.getChild("rti", false).getValue();
repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigSrc));
setRTIRepository(rtiRepoFactory.newRepository(getID(), repoConfig));
- Configuration repoConfigElement = config.getChild("ac-policies", false);
- if (repoConfigElement != null) {
- repoConfig = FileUtil.resolve(getConfigFile(), new File(repoConfigElement.getValue()));
- Repository policiesRepo = policiesRepoFactory.newRepository(getID(), repoConfig);
- PolicyManager policyManager = pmFactory.newPolicyManager(policiesRepo);
- setPolicyManager(policyManager);
- }
repoConfigElement = config.getChild("ac-identities", false);
if (repoConfigElement != null) {
More information about the Yanel-commits
mailing list