You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2017/06/10 18:27:16 UTC
directory-fortress-core git commit: FC-211 - Support apacheds
password policies - cleanup
Repository: directory-fortress-core
Updated Branches:
refs/heads/master cec922a81 -> 7ba68de85
FC-211 - Support apacheds password policies - cleanup
Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/commit/7ba68de8
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/tree/7ba68de8
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-core/diff/7ba68de8
Branch: refs/heads/master
Commit: 7ba68de85ef6b0c40e3260b40bb8dbcc6e3a96ea
Parents: cec922a
Author: Shawn McKinney <sm...@apache.org>
Authored: Sat Jun 10 13:27:17 2017 -0500
Committer: Shawn McKinney <sm...@apache.org>
Committed: Sat Jun 10 13:27:17 2017 -0500
----------------------------------------------------------------------
.../directory/fortress/core/GlobalIds.java | 13 +-
.../directory/fortress/core/impl/PolicyDAO.java | 512 +++++--------------
.../core/impl/PswdPolicyMgrImplTest.java | 2 -
3 files changed, 125 insertions(+), 402 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7ba68de8/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
index f48834c..eea0ab6 100755
--- a/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
+++ b/src/main/java/org/apache/directory/fortress/core/GlobalIds.java
@@ -207,19 +207,8 @@ public final class GlobalIds
public static final String ADS_PPOLICY_ROOT = "apacheds.pwpolicy.root";
/*
- * *************************************************************************
- * ** BEGIN LDAP STANDARD ATTRIBUTE NAMES
- * ************************************************************************
- */
-
- /**
- * Password policy object class structure uses cn attribute name.
- */
- public static final String POLICY_NODE_TYPE = SchemaConstants.CN_AT;
-
- /*
* *************************************************************************
- * ** OPENLDAP ATTRIBUTES AND CONSTANTS
+ * ** LDAP ATTRIBUTE NAMES AND CONSTANT VALUES
* ************************************************************************
*/
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7ba68de8/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java b/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
index 180b772..fa5dcd9 100755
--- a/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
+++ b/src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java
@@ -105,88 +105,55 @@ final class PolicyDAO extends LdapDataProvider
* ************************************************************************
*/
private static final String OLPW_POLICY_EXTENSION = "2.5.4.35";
- private static final String OLPW_POLICY_CLASS = "pwdPolicy";
- private static final String ADS_POLICY_CLASS = "ads-passwordPolicy";
+ private static final String PW_POLICY_EXTENSION = ( Config.getInstance().isOpenldap() ) ? OLPW_POLICY_EXTENSION : "userPassword";
private static final String ADS_BASE_CLASS = "ads-base";
+ private static final String PW_POLICY_CLASS = ( Config.getInstance().isOpenldap() ) ? "pwdPolicy" : "ads-passwordPolicy";
/**
- * This object class combines OpenLDAP PW Policy schema with the Fortress audit context.
+ * This object class combines PW Policy schema with the Fortress audit context.
*/
- private static final String OL_PWPOLICY_OBJ_CLASS[] =
+ private static String PWPOLICY_OBJ_CLASS[] = (Config.getInstance().isOpenldap())
+ ? new String[]
{
SchemaConstants.TOP_OC,
SchemaConstants.DEVICE_OC,
- OLPW_POLICY_CLASS,
+ PW_POLICY_CLASS,
GlobalIds.FT_MODIFIER_AUX_OBJECT_CLASS_NAME
- };
-
- private static final String ADS_PWPOLICY_OBJ_CLASS[] =
+ }
+ : new String[]
{
SchemaConstants.TOP_OC,
ADS_BASE_CLASS,
- ADS_POLICY_CLASS,
+ PW_POLICY_CLASS,
GlobalIds.FT_MODIFIER_AUX_OBJECT_CLASS_NAME
- };
-
- private static final String OLPW_MIN_AGE = "pwdMinAge";
- private static final String OLPW_MAX_AGE = "pwdMaxAge";
- private static final String OLPW_IN_HISTORY = "pwdInHistory";
- private static final String OLPW_CHECK_QUALITY = "pwdCheckQuality";
- private static final String OLPW_MIN_LENGTH = "pwdMinLength";
- private static final String OLPW_EXPIRE_WARNING = "pwdExpireWarning";
- private static final String OLPW_GRACE_LOGIN_LIMIT = "pwdGraceAuthNLimit";
- private static final String OLPW_LOCKOUT = "pwdLockout";
- private static final String OLPW_LOCKOUT_DURATION = "pwdLockoutDuration";
- private static final String OLPW_MAX_FAILURE = "pwdMaxFailure";
- private static final String OLPW_FAILURE_COUNT_INTERVAL = "pwdFailureCountInterval";
- private static final String OLPW_MUST_CHANGE = "pwdMustChange";
- private static final String OLPW_ALLOW_USER_CHANGE = "pwdAllowUserChange";
- private static final String OLPW_SAFE_MODIFY = "pwdSafeModify";
- private static final String OLPW_ATTRIBUTE = "pwdAttribute";
-
- private static final String ADS_PREFIX = "ads-";
- private static final String ADS_MIN_AGE = ADS_PREFIX + "pwdMinAge";
- private static final String ADS_MAX_AGE = ADS_PREFIX + "pwdMaxAge";
- private static final String ADS_IN_HISTORY = ADS_PREFIX + "pwdInHistory";
- private static final String ADS_CHECK_QUALITY = ADS_PREFIX + "pwdCheckQuality";
- private static final String ADS_MIN_LENGTH = ADS_PREFIX + "pwdMinLength";
- private static final String ADS_EXPIRE_WARNING = ADS_PREFIX + "pwdExpireWarning";
- private static final String ADS_GRACE_LOGIN_LIMIT = ADS_PREFIX + "pwdGraceAuthNLimit";
- private static final String ADS_LOCKOUT = ADS_PREFIX + "pwdLockout";
- private static final String ADS_LOCKOUT_DURATION = ADS_PREFIX + "pwdLockoutDuration";
- private static final String ADS_MAX_FAILURE = ADS_PREFIX + "pwdMaxFailure";
- private static final String ADS_FAILURE_COUNT_INTERVAL = ADS_PREFIX + "pwdFailureCountInterval";
- private static final String ADS_MUST_CHANGE = ADS_PREFIX + "pwdMustChange";
- private static final String ADS_ALLOW_USER_CHANGE = ADS_PREFIX + "pwdAllowUserChange";
- private static final String ADS_SAFE_MODIFY = ADS_PREFIX + "pwdSafeModify";
- private static final String ADS_ATTRIBUTE = "ads-pwdAttribute";
- private static final String ADS_PWD_ID = "ads-pwdid";
-
- private static final String[] OL_PASSWORD_POLICY_ATRS =
- {
- SchemaConstants.CN_AT, OLPW_MIN_AGE, OLPW_MAX_AGE, OLPW_IN_HISTORY, OLPW_CHECK_QUALITY,
- OLPW_MIN_LENGTH, OLPW_EXPIRE_WARNING, OLPW_GRACE_LOGIN_LIMIT, OLPW_LOCKOUT,
- OLPW_LOCKOUT_DURATION, OLPW_MAX_FAILURE, OLPW_FAILURE_COUNT_INTERVAL,
- OLPW_MUST_CHANGE, OLPW_ALLOW_USER_CHANGE, OLPW_SAFE_MODIFY, "ads-pwdid"
- };
-
- private static final String[] ADS_PASSWORD_POLICY_ATRS =
- {
- ADS_PWD_ID, ADS_MIN_AGE, ADS_MAX_AGE, ADS_IN_HISTORY, ADS_CHECK_QUALITY,
- ADS_MIN_LENGTH, ADS_EXPIRE_WARNING, ADS_GRACE_LOGIN_LIMIT, ADS_LOCKOUT,
- ADS_LOCKOUT_DURATION, ADS_MAX_FAILURE, ADS_FAILURE_COUNT_INTERVAL,
- ADS_MUST_CHANGE, ADS_ALLOW_USER_CHANGE, ADS_SAFE_MODIFY
- };
-
- private static final String[] OL_PASSWORD_POLICY_NAME_ATR =
- {
- SchemaConstants.CN_AT
- };
-
- private static final String[] ADS_PASSWORD_POLICY_NAME_ATR =
- {
- ADS_PWD_ID
- };
+ };
+
+ private static final String PW_PWD_ID = (Config.getInstance().isOpenldap()) ? "cn" : "ads-pwdid";
+ private static final String PW_MIN_AGE = (Config.getInstance().isOpenldap()) ? "pwdMinAge" : "ads-pwdMinAge";
+ private static final String PW_MAX_AGE = (Config.getInstance().isOpenldap()) ? "pwdMaxAge" : "ads-pwdMaxAge";
+ private static final String PW_IN_HISTORY = (Config.getInstance().isOpenldap()) ? "pwdInHistory" : "ads-pwdInHistory";
+ private static final String PW_CHECK_QUALITY = (Config.getInstance().isOpenldap()) ? "pwdCheckQuality" : "ads-pwdCheckQuality";
+ private static final String PW_MIN_LENGTH = (Config.getInstance().isOpenldap()) ? "pwdMinLength" : "ads-pwdMinLength";
+ private static final String PW_EXPIRE_WARNING = (Config.getInstance().isOpenldap()) ? "pwdExpireWarning" : "ads-pwdExpireWarning";
+ private static final String PW_GRACE_LOGIN_LIMIT = (Config.getInstance().isOpenldap()) ? "pwdGraceAuthNLimit" : "ads-pwdGraceAuthNLimit";
+ private static final String PW_LOCKOUT = (Config.getInstance().isOpenldap()) ? "pwdLockout" : "ads-pwdLockout";
+ private static final String PW_LOCKOUT_DURATION = (Config.getInstance().isOpenldap()) ? "pwdLockoutDuration" : "ads-pwdLockoutDuration";
+ private static final String PW_MAX_FAILURE = (Config.getInstance().isOpenldap()) ? "pwdMaxFailure" : "ads-pwdMaxFailure";
+ private static final String PW_FAILURE_COUNT_INTERVAL = (Config.getInstance().isOpenldap()) ? "pwdFailureCountInterval" : "ads-pwdFailureCountInterval";
+ private static final String PW_MUST_CHANGE = (Config.getInstance().isOpenldap()) ? "pwdMustChange" : "ads-pwdMustChange";
+ private static final String PW_ALLOW_USER_CHANGE = (Config.getInstance().isOpenldap()) ? "pwdAllowUserChange" : "ads-pwdAllowUserChange";
+ private static final String PW_SAFE_MODIFY = (Config.getInstance().isOpenldap()) ? "pwdSafeModify" : "ads-pwdSafeModify";
+ private static final String PW_ATTRIBUTE = (Config.getInstance().isOpenldap()) ? "pwdAttribute" : "ads-pwdAttribute";
+
+ private static final String[] PASSWORD_POLICY_ATRS =
+ {
+ PW_PWD_ID, PW_MIN_AGE, PW_MAX_AGE, PW_IN_HISTORY, PW_CHECK_QUALITY,
+ PW_MIN_LENGTH, PW_EXPIRE_WARNING, PW_GRACE_LOGIN_LIMIT, PW_LOCKOUT,
+ PW_LOCKOUT_DURATION, PW_MAX_FAILURE, PW_FAILURE_COUNT_INTERVAL,
+ PW_MUST_CHANGE, PW_ALLOW_USER_CHANGE, PW_SAFE_MODIFY
+ };
+
+ private static final String[] PASSWORD_POLICY_NAME_ATR = { PW_PWD_ID };
/**
* @param entity
@@ -204,109 +171,66 @@ final class PolicyDAO extends LdapDataProvider
{
Entry entry = new DefaultEntry( dn );
-
- if( Config.getInstance().isOpenldap() )
- {
- entry.add( SchemaConstants.OBJECT_CLASS_AT, OL_PWPOLICY_OBJ_CLASS );
- entry.add( SchemaConstants.CN_AT, entity.getName() );
- entry.add( OLPW_ATTRIBUTE, OLPW_POLICY_EXTENSION );
- }
- else
- {
- entry.add( SchemaConstants.OBJECT_CLASS_AT, ADS_PWPOLICY_OBJ_CLASS );
- entry.add( ADS_PWD_ID, entity.getName() );
- entry.add( ADS_ATTRIBUTE, "userPassword" );
- }
+ entry.add( SchemaConstants.OBJECT_CLASS_AT, PWPOLICY_OBJ_CLASS );
+ entry.add( PW_PWD_ID, entity.getName() );
+ entry.add( PW_ATTRIBUTE, PW_POLICY_EXTENSION );
if ( entity.getMinAge() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_MIN_AGE, entity.getMinAge().toString() );
- else
- entry.add( ADS_MIN_AGE, entity.getMinAge().toString() );
+ entry.add( PW_MIN_AGE, entity.getMinAge().toString() );
}
if ( entity.getMaxAge() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_MAX_AGE, entity.getMaxAge().toString() );
- else
- entry.add( ADS_MAX_AGE, entity.getMaxAge().toString() );
+ entry.add( PW_MAX_AGE, entity.getMaxAge().toString() );
}
if ( entity.getInHistory() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_IN_HISTORY, entity.getInHistory().toString() );
- else
- entry.add( ADS_IN_HISTORY, entity.getInHistory().toString() );
+ entry.add( PW_IN_HISTORY, entity.getInHistory().toString() );
}
if ( entity.getCheckQuality() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_CHECK_QUALITY, entity.getCheckQuality().toString() );
- else
- entry.add( ADS_CHECK_QUALITY, entity.getCheckQuality().toString() );
+ entry.add( PW_CHECK_QUALITY, entity.getCheckQuality().toString() );
}
if ( entity.getMinLength() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_MIN_LENGTH, entity.getMinLength().toString() );
- else
- entry.add( ADS_MIN_LENGTH, entity.getMinLength().toString() );
+ entry.add( PW_MIN_LENGTH, entity.getMinLength().toString() );
}
if ( entity.getExpireWarning() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_EXPIRE_WARNING, entity.getExpireWarning().toString() );
- else
- entry.add( ADS_EXPIRE_WARNING, entity.getExpireWarning().toString() );
+ entry.add( PW_EXPIRE_WARNING, entity.getExpireWarning().toString() );
}
if ( entity.getGraceLoginLimit() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() );
- else
- entry.add( ADS_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() );
+ entry.add( PW_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() );
}
if ( entity.getLockout() != null )
{
/**
- * For some reason OpenLDAP requires the pwdLockout boolean value to be upper case:
+ * OpenLDAP requires the pwdLockout boolean value to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_LOCKOUT, entity.getLockout().toString().toUpperCase() );
- else
- entry.add( ADS_LOCKOUT, entity.getLockout().toString().toUpperCase() );
+ entry.add( PW_LOCKOUT, entity.getLockout().toString().toUpperCase() );
}
if ( entity.getLockoutDuration() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_LOCKOUT_DURATION, entity.getLockoutDuration().toString() );
- else
- entry.add( ADS_LOCKOUT_DURATION, entity.getLockoutDuration().toString() );
+ entry.add( PW_LOCKOUT_DURATION, entity.getLockoutDuration().toString() );
}
if ( entity.getMaxFailure() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_MAX_FAILURE, entity.getMaxFailure().toString() );
- else
- entry.add( ADS_MAX_FAILURE, entity.getMaxFailure().toString() );
+ entry.add( PW_MAX_FAILURE, entity.getMaxFailure().toString() );
}
if ( entity.getFailureCountInterval() != null )
{
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() );
- else
- entry.add( ADS_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() );
+ entry.add( PW_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() );
}
if ( entity.getMustChange() != null )
@@ -314,10 +238,7 @@ final class PolicyDAO extends LdapDataProvider
/**
* OpenLDAP requires the boolean values to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() );
- else
- entry.add( ADS_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() );
+ entry.add( PW_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() );
}
if ( entity.getAllowUserChange() != null )
@@ -325,23 +246,13 @@ final class PolicyDAO extends LdapDataProvider
/**
* OpenLDAP requires the boolean values to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString()
- .toUpperCase() );
- else
- entry.add( ADS_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString()
+ entry.add( PW_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString()
.toUpperCase() );
}
if ( entity.getSafeModify() != null )
{
- /**
- * OpenLDAP requires the boolean values to be upper case:
- */
- if( Config.getInstance().isOpenldap() )
- entry.add( OLPW_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() );
- else
- entry.add( ADS_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() );
+ entry.add( PW_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() );
}
ld = getAdminConnection();
@@ -377,86 +288,51 @@ final class PolicyDAO extends LdapDataProvider
if ( entity.getMinAge() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_MIN_AGE, entity.getMinAge().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_MIN_AGE, entity.getMinAge().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_MIN_AGE, entity.getMinAge().toString() ) );
}
if ( entity.getMaxAge() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_MAX_AGE, entity.getMaxAge().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_MAX_AGE, entity.getMaxAge().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_MAX_AGE, entity.getMaxAge().toString() ) );
}
if ( entity.getInHistory() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_IN_HISTORY, entity.getInHistory().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_IN_HISTORY, entity.getInHistory().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_IN_HISTORY, entity.getInHistory().toString() ) );
}
if ( entity.getCheckQuality() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_CHECK_QUALITY, entity.getCheckQuality().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_CHECK_QUALITY, entity.getCheckQuality().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_CHECK_QUALITY, entity.getCheckQuality().toString() ) );
}
if ( entity.getMinLength() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_MIN_LENGTH, entity.getMinLength().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_MIN_LENGTH, entity.getMinLength().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_MIN_LENGTH, entity.getMinLength().toString() ) );
}
if ( entity.getExpireWarning() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_EXPIRE_WARNING, entity.getExpireWarning().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_EXPIRE_WARNING, entity.getExpireWarning().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_EXPIRE_WARNING, entity.getExpireWarning().toString() ) );
}
if ( entity.getGraceLoginLimit() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() ) );
}
if ( entity.getLockout() != null )
@@ -464,50 +340,30 @@ final class PolicyDAO extends LdapDataProvider
/**
* OpenLDAP requires the boolean values to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_LOCKOUT, entity.getLockout().toString().toUpperCase() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_LOCKOUT, entity.getLockout().toString().toUpperCase() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_LOCKOUT, entity.getLockout().toString().toUpperCase() ) );
}
if ( entity.getLockoutDuration() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_LOCKOUT_DURATION, entity.getLockoutDuration().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_LOCKOUT_DURATION, entity.getLockoutDuration().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_LOCKOUT_DURATION, entity.getLockoutDuration().toString() ) );
}
if ( entity.getMaxFailure() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_MAX_FAILURE, entity.getMaxFailure().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_MAX_FAILURE, entity.getMaxFailure().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_MAX_FAILURE, entity.getMaxFailure().toString() ) );
}
if ( entity.getFailureCountInterval() != null )
{
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() ) );
}
if ( entity.getMustChange() != null )
@@ -515,14 +371,9 @@ final class PolicyDAO extends LdapDataProvider
/**
* OpenLDAP requires the boolean values to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() ) );
}
if ( entity.getAllowUserChange() != null )
@@ -530,14 +381,9 @@ final class PolicyDAO extends LdapDataProvider
/**
* OpenLDAP requires the boolean values to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString().toUpperCase() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString().toUpperCase() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString().toUpperCase() ) );
}
if ( entity.getSafeModify() != null )
@@ -545,14 +391,9 @@ final class PolicyDAO extends LdapDataProvider
/**
* OpenLDAP requires the boolean values to be upper case:
*/
- if( Config.getInstance().isOpenldap() )
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- OLPW_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() ) );
- else
- mods.add( new DefaultModification(
- ModificationOperation.REPLACE_ATTRIBUTE,
- ADS_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() ) );
+ mods.add( new DefaultModification(
+ ModificationOperation.REPLACE_ATTRIBUTE,
+ PW_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() ) );
}
if ( mods != null && mods.size() > 0 )
@@ -614,13 +455,7 @@ final class PolicyDAO extends LdapDataProvider
try
{
ld = getAdminConnection();
- String pattr[];
- if( Config.getInstance().isOpenldap() )
- pattr = OL_PASSWORD_POLICY_ATRS;
- else
- pattr = ADS_PASSWORD_POLICY_ATRS;
-
- Entry findEntry = read( ld, dn, pattr );
+ Entry findEntry = read( ld, dn, PASSWORD_POLICY_ATRS );
entity = unloadLdapEntry( findEntry, 0 );
}
catch ( LdapNoSuchObjectException e )
@@ -656,147 +491,89 @@ final class PolicyDAO extends LdapDataProvider
PwPolicy entity = new ObjectFactory().createPswdPolicy();
entity.setSequenceId( sequence );
- if( Config.getInstance().isOpenldap() )
- entity.setName( getAttribute( le, SchemaConstants.CN_AT ) );
- else
- entity.setName( getAttribute( le, ADS_PWD_ID ) );
+ entity.setName( getAttribute( le, PW_PWD_ID ) );
String val;
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_MIN_AGE );
- else
- val = getAttribute( le, ADS_MIN_AGE );
-
+ val = getAttribute( le, PW_MIN_AGE );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setMinAge( Integer.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_MAX_AGE );
- else
- val = getAttribute( le, ADS_MAX_AGE );
-
+ val = getAttribute( le, PW_MAX_AGE );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setMaxAge( Long.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_IN_HISTORY );
- else
- val = getAttribute( le, ADS_IN_HISTORY );
-
+ val = getAttribute( le, PW_IN_HISTORY );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setInHistory( Short.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_CHECK_QUALITY );
- else
- val = getAttribute( le, ADS_CHECK_QUALITY );
-
+ val = getAttribute( le, PW_CHECK_QUALITY );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setCheckQuality( Short.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_MIN_LENGTH );
- else
- val = getAttribute( le, ADS_MIN_LENGTH );
-
+ val = getAttribute( le, PW_MIN_LENGTH );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setMinLength( Short.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_EXPIRE_WARNING );
- else
- val = getAttribute( le, ADS_EXPIRE_WARNING );
-
+ val = getAttribute( le, PW_EXPIRE_WARNING );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setExpireWarning( Long.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_GRACE_LOGIN_LIMIT );
- else
- val = getAttribute( le, ADS_GRACE_LOGIN_LIMIT );
-
+ val = getAttribute( le, PW_GRACE_LOGIN_LIMIT );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setGraceLoginLimit( Short.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_LOCKOUT );
- else
- val = getAttribute( le, ADS_LOCKOUT );
-
+ val = getAttribute( le, PW_LOCKOUT );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setLockout( Boolean.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_LOCKOUT_DURATION );
- else
- val = getAttribute( le, ADS_LOCKOUT_DURATION );
-
+ val = getAttribute( le, PW_LOCKOUT_DURATION );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setLockoutDuration( Integer.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_MAX_FAILURE );
- else
- val = getAttribute( le, ADS_MAX_FAILURE );
-
+ val = getAttribute( le, PW_MAX_FAILURE );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setMaxFailure( Short.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_FAILURE_COUNT_INTERVAL );
- else
- val = getAttribute( le, ADS_FAILURE_COUNT_INTERVAL );
-
+ val = getAttribute( le, PW_FAILURE_COUNT_INTERVAL );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setFailureCountInterval( Short.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_MUST_CHANGE );
- else
- val = getAttribute( le, ADS_MUST_CHANGE );
-
+ val = getAttribute( le, PW_MUST_CHANGE );
if ( StringUtils.isNotEmpty( val ) )
{
//noinspection BooleanConstructorCall
entity.setMustChange( Boolean.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_ALLOW_USER_CHANGE );
- else
- val = getAttribute( le, ADS_ALLOW_USER_CHANGE );
-
+ val = getAttribute( le, PW_ALLOW_USER_CHANGE );
if ( StringUtils.isNotEmpty( val ) )
{
entity.setAllowUserChange( Boolean.valueOf( val ) );
}
- if( Config.getInstance().isOpenldap() )
- val = getAttribute( le, OLPW_SAFE_MODIFY );
- else
- val = getAttribute( le, ADS_SAFE_MODIFY );
+ val = getAttribute( le, PW_SAFE_MODIFY );
if ( StringUtils.isNotEmpty( val ) )
{
@@ -823,23 +600,10 @@ final class PolicyDAO extends LdapDataProvider
try
{
searchVal = encodeSafeText( policy.getName(), GlobalIds.PWPOLICY_NAME_LEN );
- String szFilter;
- String attrs[];
-
- if( Config.getInstance().isOpenldap() )
- {
- szFilter = GlobalIds.FILTER_PREFIX + OLPW_POLICY_CLASS + ")(" + GlobalIds.POLICY_NODE_TYPE + "=" + searchVal + "*))";
- attrs = OL_PASSWORD_POLICY_ATRS;
- }
- else
- {
- szFilter = GlobalIds.FILTER_PREFIX + ADS_POLICY_CLASS + ")(" + ADS_PWD_ID + "=" + searchVal + "*))";
- attrs = ADS_PASSWORD_POLICY_ATRS;
- }
-
+ String szFilter = GlobalIds.FILTER_PREFIX + PW_POLICY_CLASS + ")(" + PW_PWD_ID + "=" + searchVal + "*))";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, policyRoot,
- SearchScope.ONELEVEL, szFilter, attrs, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, szFilter, PASSWORD_POLICY_ATRS, false, GlobalIds.BATCH_SIZE );
long sequence = 0;
while ( searchResults.next() )
@@ -879,33 +643,15 @@ final class PolicyDAO extends LdapDataProvider
try
{
- //String filter = "(objectclass=" + OLPW_POLICY_CLASS + ")";
- String szFilter;
- String attrs[];
-
- if( Config.getInstance().isOpenldap() )
- {
- szFilter = "(objectclass=" + OLPW_POLICY_CLASS + ")";
- attrs = OL_PASSWORD_POLICY_NAME_ATR;
- }
- else
- {
- szFilter = "(objectclass=" + ADS_POLICY_CLASS + ")";
- attrs = ADS_PASSWORD_POLICY_NAME_ATR;
- }
-
-
+ String szFilter = "(objectclass=" + PW_POLICY_CLASS + ")";
ld = getAdminConnection();
SearchCursor searchResults = search( ld, policyRoot,
- SearchScope.ONELEVEL, szFilter, attrs, false, GlobalIds.BATCH_SIZE );
+ SearchScope.ONELEVEL, szFilter, PASSWORD_POLICY_NAME_ATR, false, GlobalIds.BATCH_SIZE );
while ( searchResults.next() )
{
Entry entry = searchResults.getEntry();
- if( Config.getInstance().isOpenldap() )
- policySet.add( getAttribute( searchResults.getEntry(), SchemaConstants.CN_AT ) );
- else
- policySet.add( getAttribute( entry, ADS_PWD_ID ) );
+ policySet.add( getAttribute( entry, PW_PWD_ID ) );
}
}
catch ( LdapException e )
@@ -926,32 +672,22 @@ final class PolicyDAO extends LdapDataProvider
return policySet;
}
-
private String getDn( PwPolicy policy )
{
- String szDn;
- if( Config.getInstance().isOpenldap() )
- szDn = GlobalIds.POLICY_NODE_TYPE + "=" + policy.getName() + "," + getPolicyRoot( policy.getContextId() );
- else
- szDn = ADS_PWD_ID + "=" + policy.getName() + "," + getPolicyRoot( policy.getContextId() );
-
- return szDn;
+ return PW_PWD_ID + "=" + policy.getName() + "," + getPolicyRoot( policy.getContextId() );
}
+ // Allow callers from package {@link UserDAO} access to this method to resolve the pwdAttribute dn.
static String getPolicyDn( User user )
{
- String szDn;
- if( Config.getInstance().isOpenldap() )
- szDn = GlobalIds.POLICY_NODE_TYPE + "=" + user.getPwPolicy() + "," + getPolicyRoot( user.getContextId() );
- else
- szDn = ADS_PWD_ID + "=" + user.getPwPolicy() + "," + getPolicyRoot( user.getContextId() );
-
- return szDn;
+ return PW_PWD_ID + "=" + user.getPwPolicy() + "," + getPolicyRoot( user.getContextId() );
}
private static String getPolicyRoot( String contextId )
{
String szDn;
+
+ // ApacheDS requires pw policy objects to be stored under ou=config node;
if( Config.getInstance().isOpenldap() )
szDn = getRootDn( contextId, GlobalIds.PPOLICY_ROOT );
else
@@ -959,4 +695,4 @@ final class PolicyDAO extends LdapDataProvider
return szDn;
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-core/blob/7ba68de8/src/test/java/org/apache/directory/fortress/core/impl/PswdPolicyMgrImplTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/directory/fortress/core/impl/PswdPolicyMgrImplTest.java b/src/test/java/org/apache/directory/fortress/core/impl/PswdPolicyMgrImplTest.java
index 49a6e18..4e5d569 100755
--- a/src/test/java/org/apache/directory/fortress/core/impl/PswdPolicyMgrImplTest.java
+++ b/src/test/java/org/apache/directory/fortress/core/impl/PswdPolicyMgrImplTest.java
@@ -83,7 +83,6 @@ public class PswdPolicyMgrImplTest extends TestCase
suite.addTest( new PswdPolicyMgrImplTest( "testAdd" ) );
suite.addTest( new PswdPolicyMgrImplTest( "testAddUser" ) );
-/*
suite.addTest( new PswdPolicyMgrImplTest( "testMinAge" ) );
suite.addTest( new PswdPolicyMgrImplTest( "testMaxAge" ) );
suite.addTest( new PswdPolicyMgrImplTest( "testInHistory" ) );
@@ -94,7 +93,6 @@ public class PswdPolicyMgrImplTest extends TestCase
suite.addTest( new PswdPolicyMgrImplTest( "testLockoutDuration" ) );
suite.addTest( new PswdPolicyMgrImplTest( "testLockout" ) );
suite.addTest( new PswdPolicyMgrImplTest( "testFailureCountInterval" ) );
-*/
suite.addTest( new PswdPolicyMgrImplTest( "testMustChange" ) );
suite.addTest( new PswdPolicyMgrImplTest( "testAllowUserChange" ) );