in src/main/java/org/apache/directory/fortress/core/impl/AuditDAO.java [636:724]
List<Mod> searchAdminMods( UserAudit audit ) throws FinderException
{
List<Mod> modList = new ArrayList<>();
LdapConnection ld = null;
String auditRoot = Config.getInstance().getProperty( AUDIT_ROOT );
try
{
String filter = "(&(|(objectclass=" + ACCESS_MOD_CLASS_NM + ")";
filter += "(objectclass=" + ACCESS_ADD_CLASS_NM + "))";
if ( StringUtils.isNotEmpty( audit.getDn() ) )
{
filter += "(" + REQDN + "=" + audit.getDn() + ")";
}
if ( StringUtils.isNotEmpty( audit.getObjName() ) )
{
filter += "(|(" + REQMOD + "=" + GlobalIds.FT_MODIFIER_CODE + ":= " + audit.getObjName() + ".";
if ( StringUtils.isNotEmpty( audit.getOpName() ) )
{
filter += audit.getOpName();
}
filter += "*)";
filter += "(" + REQMOD + "=" + GlobalIds.FT_MODIFIER_CODE + ":+ " + audit.getObjName() + ".";
if ( StringUtils.isNotEmpty( audit.getOpName() ) )
{
filter += audit.getOpName();
}
filter += "*))";
}
if ( StringUtils.isNotEmpty( audit.getInternalUserId() ) )
{
filter += "(|(" + REQMOD + "=" + GlobalIds.FT_MODIFIER + ":= " + audit.getInternalUserId() + ")";
filter += "(" + REQMOD + "=" + GlobalIds.FT_MODIFIER + ":+ " + audit.getInternalUserId() + "))";
}
if ( audit.getBeginDate() != null )
{
String szTime = TUtil.encodeGeneralizedTime( audit.getBeginDate() );
filter += "(" + REQEND + ">=" + szTime + ")";
}
if ( audit.getEndDate() != null )
{
String szTime = TUtil.encodeGeneralizedTime( audit.getEndDate() );
filter += "(" + REQEND + "<=" + szTime + ")";
}
filter += ")";
//log.warn("filter=" + filter);
ld = getLogConnection();
try ( SearchCursor searchResults = search( ld, auditRoot,
SearchScope.ONELEVEL, filter, AUDIT_MOD_ATRS, false, Config.getInstance().getInt(GlobalIds.CONFIG_LDAP_MAX_BATCH_SIZE, GlobalIds.BATCH_SIZE ) ) )
{
long sequence = 0;
while ( searchResults.next() )
{
modList.add( getModEntityFromLdapEntry( searchResults.getEntry(), sequence++ ) );
}
}
catch ( IOException i )
{
String error = "searchAdminMods caught IOException id=" + i.getMessage();
throw new FinderException( GlobalErrIds.AUDT_MOD_ADMIN_SEARCH_FAILED, error, i );
}
catch ( CursorException e )
{
String error = "searchAdminMods caught CursorException id=" + e.getMessage();
throw new FinderException( GlobalErrIds.AUDT_MOD_ADMIN_SEARCH_FAILED, error, e );
}
}
catch ( LdapException e )
{
String error = "searchAdminMods caught LdapException id=" + e;
throw new FinderException( GlobalErrIds.AUDT_MOD_ADMIN_SEARCH_FAILED, error, e );
}
finally
{
closeLogConnection( ld );
}
return modList;
}