You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2011/04/18 23:50:29 UTC
svn commit: r1094786 - in /directory/apacheds/trunk:
server-config/src/main/java/org/apache/directory/server/config/
server-config/src/main/java/org/apache/directory/server/config/beans/
server-config/src/main/resources/ service-builder/src/main/java/o...
Author: kayyagari
Date: Mon Apr 18 21:50:29 2011
New Revision: 1094786
URL: http://svn.apache.org/viewvc?rev=1094786&view=rev
Log:
o added a new container for password policies in config file
o added support for reading multiple password policies
Modified:
directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java
directory/apacheds/trunk/server-config/src/main/resources/config.ldif
directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java
Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java?rev=1094786&r1=1094785&r2=1094786&view=diff
==============================================================================
--- directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java (original)
+++ directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java Mon Apr 18 21:50:29 2011
@@ -573,7 +573,13 @@ public class ConfigPartitionReader
{
// Try by removing 'es'
attributeName = fieldName.substring( 0, fieldName.length() - 2 );
-
+
+ // if not found try by removing 'ies' and adding 'y' , e.x ads-passwordPolicies
+ if ( fieldName.endsWith( "ies" ) && !schemaManager.getObjectClassRegistry().contains( attributeName ) )
+ {
+ attributeName = fieldName.substring( 0, fieldName.length() - 3 ) + "y";
+ }
+
if ( !schemaManager.getObjectClassRegistry().contains( attributeName ) )
{
String message = "Cannot find the ObjectClass named " + attributeName + " in the schema";
Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java?rev=1094786&r1=1094785&r2=1094786&view=diff
==============================================================================
--- directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java (original)
+++ directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java Mon Apr 18 21:50:29 2011
@@ -90,8 +90,8 @@ public class DirectoryServiceBean extend
private List<PartitionBean> partitions = new ArrayList<PartitionBean>();
/** The reference to the Password Policy component */
- @ConfigurationElement
- private PasswordPolicyBean passwordPolicy;
+ @ConfigurationElement(attributeType = "ads-passwordPolicies", container = "passwordPolicies")
+ private List<PasswordPolicyBean> passwordPolicies = new ArrayList<PasswordPolicyBean>();
/**
@@ -524,24 +524,36 @@ public class DirectoryServiceBean extend
/**
- * @return the passwordPolicy
+ * @return the passwordPolicies
*/
- public PasswordPolicyBean getPasswordPolicy()
+ public List<PasswordPolicyBean> getPasswordPolicies()
{
- return passwordPolicy;
+ return passwordPolicies;
}
/**
- * @param passwordPolicy the passwordPolicy to set
+ * @param passwordPolicies the pwdPolicies to set
*/
- public void setPasswordPolicy( PasswordPolicyBean passwordPolicy )
+ public void setPasswordPolicies( List<PasswordPolicyBean> passwordPolicies )
{
- this.passwordPolicy = passwordPolicy;
+ this.passwordPolicies = passwordPolicies;
}
/**
+ * @param ppolicies the password policies to add
+ */
+ public void addPasswordPolicies( PasswordPolicyBean... ppolicies )
+ {
+ for ( PasswordPolicyBean ppolicy : ppolicies )
+ {
+ this.passwordPolicies.add( ppolicy );
+ }
+ }
+
+
+ /**
* {@inheritDoc}
*/
public String toString()
@@ -592,9 +604,12 @@ public class DirectoryServiceBean extend
sb.append( changeLog.toString( " " ) );
}
- if ( passwordPolicy != null )
+ if ( ( passwordPolicies != null ) && ( passwordPolicies.size() > 0 ) )
{
- sb.append( passwordPolicy.toString( " " ) );
+ for ( PasswordPolicyBean ppolicy : passwordPolicies )
+ {
+ sb.append( ppolicy.toString( " " ) );
+ }
}
sb.append( " servers : \n" );
Modified: directory/apacheds/trunk/server-config/src/main/resources/config.ldif
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/resources/config.ldif?rev=1094786&r1=1094785&r2=1094786&view=diff
==============================================================================
--- directory/apacheds/trunk/server-config/src/main/resources/config.ldif (original)
+++ directory/apacheds/trunk/server-config/src/main/resources/config.ldif Mon Apr 18 21:50:29 2011
@@ -23,6 +23,7 @@ ads-servers: ldapServer
ads-servers: ntpServer
ads-partitions: example
ads-partitions: system
+ads-passwordPolicies: default
ads-interceptors: aciAuthorizationInterceptor
ads-interceptors: authenticationInterceptor
ads-interceptors: collectiveAttributeInterceptor
@@ -216,11 +217,16 @@ ads-interceptorclassname: org.apache.dir
ads-interceptorid: triggerInterceptor
ads-enabled: TRUE
-dn: ads-pwdId=pwdPolicy,ads-directoryServiceId=default,ou=config
+dn: ou=passwordPolicies,ads-directoryServiceId=default,ou=config
+objectClass: organizationalUnit
+objectClass: top
+ou: passwordPolicies
+
+dn: ads-pwdId=default,ou=passwordPolicies,ads-directoryServiceId=default,ou=config
objectClass: top
objectClass: ads-base
objectClass: ads-passwordPolicy
-ads-pwdId: pwdPolicy
+ads-pwdId: default
ads-pwdSafeModify: FALSE
ads-pwdMaxAge: 0
ads-pwdFailureCountInterval: 30
Modified: directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java?rev=1094786&r1=1094785&r2=1094786&view=diff
==============================================================================
--- directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java (original)
+++ directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java Mon Apr 18 21:50:29 2011
@@ -1270,16 +1270,30 @@ public class ServiceBuilder
directoryService.setJournal( jl );
}
- // password policy
- // TODO add support for reading multiple policies from the config
- PasswordPolicyConfiguration pPolicyConfig = createPwdPolicyConfig( directoryServiceBean.getPasswordPolicy() );
- if ( pPolicyConfig != null )
+ // password policies
+ List<PasswordPolicyBean> ppolicyBeans = directoryServiceBean.getPasswordPolicies();
+ PpolicyConfigContainer ppolicyContainer = new PpolicyConfigContainer();
+
+ for ( PasswordPolicyBean ppolicyBean : ppolicyBeans )
{
- PpolicyConfigContainer pPolicies = new PpolicyConfigContainer();
- pPolicies.setDefaultPolicy( pPolicyConfig );
- directoryService.setPwdPolicies( pPolicies );
+ PasswordPolicyConfiguration ppolicyConfig = createPwdPolicyConfig( ppolicyBean );
+
+ if ( ppolicyConfig != null )
+ {
+ // the name should be strictly 'default', the default policy can't be enforced by defining a new AT
+ if ( ppolicyBean.getPwdId().equalsIgnoreCase( "default" ) )
+ {
+ ppolicyContainer.setDefaultPolicy( ppolicyConfig );
+ }
+ else
+ {
+ ppolicyContainer.addPolicy( ppolicyBean.getDn(), ppolicyConfig );
+ }
+ }
}
+ directoryService.setPwdPolicies( ppolicyContainer );
+
// MaxPDUSize
directoryService.setMaxPDUSize( directoryServiceBean.getDsMaxPDUSize() );
Re: svn commit: r1094786 - in /directory/apacheds/trunk: server-config/src/main/java/org/apache/directory/server/config/ server-config/src/main/java/org/apache/directory/server/config/beans/ server-config/src/main/resources/ service-builder/src/main/java/o...
Posted by Pierre-Arnaud Marcelot <pa...@marcelot.net>.
Hi Kiran,
I'm wondering if the Bean itself should not be renamed from 'PasswordPolicyBean' to 'PasswordPoliciesBean' to allow the ConfigReader to work.
WDYT?
Regards,
Pierre-Arnaud
On 18 avr. 2011, at 23:50, kayyagari@apache.org wrote:
> Author: kayyagari
> Date: Mon Apr 18 21:50:29 2011
> New Revision: 1094786
>
> URL: http://svn.apache.org/viewvc?rev=1094786&view=rev
> Log:
> o added a new container for password policies in config file
> o added support for reading multiple password policies
>
> Modified:
> directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
> directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java
> directory/apacheds/trunk/server-config/src/main/resources/config.ldif
> directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java
>
> Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java?rev=1094786&r1=1094785&r2=1094786&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java (original)
> +++ directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/ConfigPartitionReader.java Mon Apr 18 21:50:29 2011
> @@ -573,7 +573,13 @@ public class ConfigPartitionReader
> {
> // Try by removing 'es'
> attributeName = fieldName.substring( 0, fieldName.length() - 2 );
> -
> +
> + // if not found try by removing 'ies' and adding 'y' , e.x ads-passwordPolicies
> + if ( fieldName.endsWith( "ies" ) && !schemaManager.getObjectClassRegistry().contains( attributeName ) )
> + {
> + attributeName = fieldName.substring( 0, fieldName.length() - 3 ) + "y";
> + }
> +
> if ( !schemaManager.getObjectClassRegistry().contains( attributeName ) )
> {
> String message = "Cannot find the ObjectClass named " + attributeName + " in the schema";
>
> Modified: directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java?rev=1094786&r1=1094785&r2=1094786&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java (original)
> +++ directory/apacheds/trunk/server-config/src/main/java/org/apache/directory/server/config/beans/DirectoryServiceBean.java Mon Apr 18 21:50:29 2011
> @@ -90,8 +90,8 @@ public class DirectoryServiceBean extend
> private List<PartitionBean> partitions = new ArrayList<PartitionBean>();
>
> /** The reference to the Password Policy component */
> - @ConfigurationElement
> - private PasswordPolicyBean passwordPolicy;
> + @ConfigurationElement(attributeType = "ads-passwordPolicies", container = "passwordPolicies")
> + private List<PasswordPolicyBean> passwordPolicies = new ArrayList<PasswordPolicyBean>();
>
>
> /**
> @@ -524,24 +524,36 @@ public class DirectoryServiceBean extend
>
>
> /**
> - * @return the passwordPolicy
> + * @return the passwordPolicies
> */
> - public PasswordPolicyBean getPasswordPolicy()
> + public List<PasswordPolicyBean> getPasswordPolicies()
> {
> - return passwordPolicy;
> + return passwordPolicies;
> }
>
>
> /**
> - * @param passwordPolicy the passwordPolicy to set
> + * @param passwordPolicies the pwdPolicies to set
> */
> - public void setPasswordPolicy( PasswordPolicyBean passwordPolicy )
> + public void setPasswordPolicies( List<PasswordPolicyBean> passwordPolicies )
> {
> - this.passwordPolicy = passwordPolicy;
> + this.passwordPolicies = passwordPolicies;
> }
>
>
> /**
> + * @param ppolicies the password policies to add
> + */
> + public void addPasswordPolicies( PasswordPolicyBean... ppolicies )
> + {
> + for ( PasswordPolicyBean ppolicy : ppolicies )
> + {
> + this.passwordPolicies.add( ppolicy );
> + }
> + }
> +
> +
> + /**
> * {@inheritDoc}
> */
> public String toString()
> @@ -592,9 +604,12 @@ public class DirectoryServiceBean extend
> sb.append( changeLog.toString( " " ) );
> }
>
> - if ( passwordPolicy != null )
> + if ( ( passwordPolicies != null ) && ( passwordPolicies.size() > 0 ) )
> {
> - sb.append( passwordPolicy.toString( " " ) );
> + for ( PasswordPolicyBean ppolicy : passwordPolicies )
> + {
> + sb.append( ppolicy.toString( " " ) );
> + }
> }
>
> sb.append( " servers : \n" );
>
> Modified: directory/apacheds/trunk/server-config/src/main/resources/config.ldif
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-config/src/main/resources/config.ldif?rev=1094786&r1=1094785&r2=1094786&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/server-config/src/main/resources/config.ldif (original)
> +++ directory/apacheds/trunk/server-config/src/main/resources/config.ldif Mon Apr 18 21:50:29 2011
> @@ -23,6 +23,7 @@ ads-servers: ldapServer
> ads-servers: ntpServer
> ads-partitions: example
> ads-partitions: system
> +ads-passwordPolicies: default
> ads-interceptors: aciAuthorizationInterceptor
> ads-interceptors: authenticationInterceptor
> ads-interceptors: collectiveAttributeInterceptor
> @@ -216,11 +217,16 @@ ads-interceptorclassname: org.apache.dir
> ads-interceptorid: triggerInterceptor
> ads-enabled: TRUE
>
> -dn: ads-pwdId=pwdPolicy,ads-directoryServiceId=default,ou=config
> +dn: ou=passwordPolicies,ads-directoryServiceId=default,ou=config
> +objectClass: organizationalUnit
> +objectClass: top
> +ou: passwordPolicies
> +
> +dn: ads-pwdId=default,ou=passwordPolicies,ads-directoryServiceId=default,ou=config
> objectClass: top
> objectClass: ads-base
> objectClass: ads-passwordPolicy
> -ads-pwdId: pwdPolicy
> +ads-pwdId: default
> ads-pwdSafeModify: FALSE
> ads-pwdMaxAge: 0
> ads-pwdFailureCountInterval: 30
>
> Modified: directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java
> URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java?rev=1094786&r1=1094785&r2=1094786&view=diff
> ==============================================================================
> --- directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java (original)
> +++ directory/apacheds/trunk/service-builder/src/main/java/org/apache/directory/server/config/ServiceBuilder.java Mon Apr 18 21:50:29 2011
> @@ -1270,16 +1270,30 @@ public class ServiceBuilder
> directoryService.setJournal( jl );
> }
>
> - // password policy
> - // TODO add support for reading multiple policies from the config
> - PasswordPolicyConfiguration pPolicyConfig = createPwdPolicyConfig( directoryServiceBean.getPasswordPolicy() );
> - if ( pPolicyConfig != null )
> + // password policies
> + List<PasswordPolicyBean> ppolicyBeans = directoryServiceBean.getPasswordPolicies();
> + PpolicyConfigContainer ppolicyContainer = new PpolicyConfigContainer();
> +
> + for ( PasswordPolicyBean ppolicyBean : ppolicyBeans )
> {
> - PpolicyConfigContainer pPolicies = new PpolicyConfigContainer();
> - pPolicies.setDefaultPolicy( pPolicyConfig );
> - directoryService.setPwdPolicies( pPolicies );
> + PasswordPolicyConfiguration ppolicyConfig = createPwdPolicyConfig( ppolicyBean );
> +
> + if ( ppolicyConfig != null )
> + {
> + // the name should be strictly 'default', the default policy can't be enforced by defining a new AT
> + if ( ppolicyBean.getPwdId().equalsIgnoreCase( "default" ) )
> + {
> + ppolicyContainer.setDefaultPolicy( ppolicyConfig );
> + }
> + else
> + {
> + ppolicyContainer.addPolicy( ppolicyBean.getDn(), ppolicyConfig );
> + }
> + }
> }
>
> + directoryService.setPwdPolicies( ppolicyContainer );
> +
> // MaxPDUSize
> directoryService.setMaxPDUSize( directoryServiceBean.getDsMaxPDUSize() );
>
>
>