in src/main/java/org/apache/directory/fortress/core/impl/PolicyDAO.java [165:273]
PwPolicy create( PwPolicy entity )
throws CreateException
{
LdapConnection ld = null;
String dn = getDn( entity );
try
{
Entry entry = new DefaultEntry( dn );
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 )
{
entry.add( PW_MIN_AGE, entity.getMinAge().toString() );
}
if ( entity.getMaxAge() != null )
{
entry.add( PW_MAX_AGE, entity.getMaxAge().toString() );
}
if ( entity.getInHistory() != null )
{
entry.add( PW_IN_HISTORY, entity.getInHistory().toString() );
}
if ( entity.getCheckQuality() != null )
{
entry.add( PW_CHECK_QUALITY, entity.getCheckQuality().toString() );
}
if ( entity.getMinLength() != null )
{
entry.add( PW_MIN_LENGTH, entity.getMinLength().toString() );
}
if ( entity.getExpireWarning() != null )
{
entry.add( PW_EXPIRE_WARNING, entity.getExpireWarning().toString() );
}
if ( entity.getGraceLoginLimit() != null )
{
entry.add( PW_GRACE_LOGIN_LIMIT, entity.getGraceLoginLimit().toString() );
}
if ( entity.getLockout() != null )
{
/**
* OpenLDAP requires the pwdLockout boolean value to be upper case:
*/
entry.add( PW_LOCKOUT, entity.getLockout().toString().toUpperCase() );
}
if ( entity.getLockoutDuration() != null )
{
entry.add( PW_LOCKOUT_DURATION, entity.getLockoutDuration().toString() );
}
if ( entity.getMaxFailure() != null )
{
entry.add( PW_MAX_FAILURE, entity.getMaxFailure().toString() );
}
if ( entity.getFailureCountInterval() != null )
{
entry.add( PW_FAILURE_COUNT_INTERVAL, entity.getFailureCountInterval().toString() );
}
if ( entity.getMustChange() != null )
{
/**
* OpenLDAP requires the boolean values to be upper case:
*/
entry.add( PW_MUST_CHANGE, entity.getMustChange().toString().toUpperCase() );
}
if ( entity.getAllowUserChange() != null )
{
/**
* OpenLDAP requires the boolean values to be upper case:
*/
entry.add( PW_ALLOW_USER_CHANGE, entity.getAllowUserChange().toString()
.toUpperCase() );
}
if ( entity.getSafeModify() != null )
{
entry.add( PW_SAFE_MODIFY, entity.getSafeModify().toString().toUpperCase() );
}
ld = getAdminConnection();
add( ld, entry, entity );
}
catch ( LdapException e )
{
String error = "create name [" + entity.getName() + "] caught LdapException=" + e;
throw new CreateException( GlobalErrIds.PSWD_CREATE_FAILED, error, e );
}
finally
{
closeAdminConnection( ld );
}
return entity;
}