in src/main/java/org/apache/directory/fortress/core/impl/AdminRoleP.java [303:398]
private void validate( AdminRole entity )
throws SecurityException
{
VUtil.safeText( entity.getName(), GlobalIds.ROLE_LEN );
if ( StringUtils.isNotEmpty( entity.getBeginRange() ) && StringUtils.isNotEmpty( entity.getEndRange() ) )
{
VUtil.safeText( entity.getBeginRange(), GlobalIds.ROLE_LEN );
VUtil.safeText( entity.getEndRange(), GlobalIds.ROLE_LEN );
if ( entity.getBeginRange().equalsIgnoreCase( entity.getEndRange() )
&& ( !entity.isBeginInclusive() || !entity.isEndInclusive() ) )
{
String error = "validate invalid range detected for role name [" + entity.getName()
+ "] non inclusive endpoint for identical range [" + entity.getBeginRange() + "] begin inclusive ["
+ entity.isBeginInclusive() + "] end inclusive [" + entity.isEndInclusive() + "]";
LOG.warn( error );
throw new SecurityException( GlobalErrIds.ARLE_INVLD_RANGE_INCLUSIVE, error );
}
else if ( !RoleUtil.getInstance().isParent( entity.getBeginRange(), entity.getEndRange(), entity.getContextId() )
&& !entity.getBeginRange().equalsIgnoreCase( entity.getEndRange() ) )
{
String error = "validate invalid range detected for role name [" + entity.getName()
+ "] begin range [" + entity.getBeginRange() + "] end range [" + entity.getEndRange() + "]";
LOG.warn( error );
throw new SecurityException( GlobalErrIds.ARLE_INVLD_RANGE, error );
}
}
else if ( StringUtils.isEmpty( entity.getBeginRange() ) && StringUtils.isNotEmpty( entity.getEndRange() ) )
{
String error = "validate role name [" + entity.getName() + "] begin range value null or empty.";
LOG.warn( error );
throw new SecurityException( GlobalErrIds.ARLE_BEGIN_RANGE_NULL, error );
}
else if ( StringUtils.isNotEmpty( entity.getBeginRange() ) && StringUtils.isEmpty( entity.getEndRange() ) )
{
String error = "validate role name [" + entity.getName() + "] end range value null or empty.";
LOG.warn( error );
throw new SecurityException( GlobalErrIds.ARLE_END_RANGE_NULL, error );
}
if ( StringUtils.isNotEmpty( entity.getDescription() ) )
{
VUtil.description( entity.getDescription() );
}
if ( entity.getTimeout() >= 0 )
{
constraintValidator.timeout( entity.getTimeout() );
}
if ( StringUtils.isNotEmpty( entity.getBeginTime() ) )
{
constraintValidator.beginTime( entity.getBeginTime() );
}
if ( StringUtils.isNotEmpty( entity.getEndTime() ) )
{
constraintValidator.endTime( entity.getEndTime() );
}
if ( StringUtils.isNotEmpty( entity.getBeginDate() ) )
{
constraintValidator.beginDate( entity.getBeginDate() );
}
if ( StringUtils.isNotEmpty( entity.getEndDate() ) )
{
constraintValidator.endDate( entity.getEndDate() );
}
if ( StringUtils.isNotEmpty( entity.getDayMask() ) )
{
constraintValidator.dayMask( entity.getDayMask() );
}
if ( StringUtils.isNotEmpty( entity.getBeginLockDate() ) )
{
constraintValidator.beginDate( entity.getBeginDate() );
}
if ( StringUtils.isNotEmpty( entity.getEndLockDate() ) )
{
constraintValidator.endDate( entity.getEndLockDate() );
}
if ( CollectionUtils.isNotEmpty( entity.getOsUSet() ) )
{
validateOrgs( entity.getOsUSet(), OrgUnit.Type.USER, entity.getContextId() );
}
if ( CollectionUtils.isNotEmpty( entity.getOsPSet() ) )
{
validateOrgs( entity.getOsPSet(), OrgUnit.Type.PERM, entity.getContextId() );
}
}