[MRM-1355] fix username for audit log

git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/archiva-1.3.x@918857 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Porter 2010-03-04 05:18:44 +00:00
parent d40d925272
commit bc267adc07
3 changed files with 23 additions and 15 deletions

View File

@ -71,14 +71,6 @@ import org.joda.time.format.ISODateTimeFormat;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/** /**
*/ */
public class ArchivaDavResource public class ArchivaDavResource
@ -428,7 +420,8 @@ public class ArchivaDavResource
{ {
String path = logicalResource + "/" + member.getDisplayName(); String path = logicalResource + "/" + member.getDisplayName();
triggerAuditEvent( checkDavResourceIsArchivaDavResource( member ).remoteAddr, locator.getRepositoryId(), path, ArchivaDavResource resource = checkDavResourceIsArchivaDavResource( member );
triggerAuditEvent( resource.remoteAddr, resource.principal, locator.getRepositoryId(), path,
event ); event );
} }
@ -447,13 +440,13 @@ public class ArchivaDavResource
{ {
FileUtils.moveDirectory( getLocalResource(), resource.getLocalResource() ); FileUtils.moveDirectory( getLocalResource(), resource.getLocalResource() );
triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.MOVE_DIRECTORY ); triggerAuditEvent( remoteAddr, principal, locator.getRepositoryId(), logicalResource, AuditEvent.MOVE_DIRECTORY );
} }
else else
{ {
FileUtils.moveFile( getLocalResource(), resource.getLocalResource() ); FileUtils.moveFile( getLocalResource(), resource.getLocalResource() );
triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.MOVE_FILE ); triggerAuditEvent( remoteAddr, principal, locator.getRepositoryId(), logicalResource, AuditEvent.MOVE_FILE );
} }
log.debug( ( isCollection() ? "Directory '" : "File '" ) + getLocalResource().getName() + "' moved to '" + log.debug( ( isCollection() ? "Directory '" : "File '" ) + getLocalResource().getName() + "' moved to '" +
@ -485,13 +478,13 @@ public class ArchivaDavResource
{ {
FileUtils.copyDirectory( getLocalResource(), resource.getLocalResource() ); FileUtils.copyDirectory( getLocalResource(), resource.getLocalResource() );
triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.COPY_DIRECTORY ); triggerAuditEvent( remoteAddr, principal, locator.getRepositoryId(), logicalResource, AuditEvent.COPY_DIRECTORY );
} }
else else
{ {
FileUtils.copyFile( getLocalResource(), resource.getLocalResource() ); FileUtils.copyFile( getLocalResource(), resource.getLocalResource() );
triggerAuditEvent( remoteAddr, locator.getRepositoryId(), logicalResource, AuditEvent.COPY_FILE ); triggerAuditEvent( remoteAddr, principal, locator.getRepositoryId(), logicalResource, AuditEvent.COPY_FILE );
} }
log.debug( ( isCollection() ? "Directory '" : "File '" ) + getLocalResource().getName() + "' copied to '" + log.debug( ( isCollection() ? "Directory '" : "File '" ) + getLocalResource().getName() + "' copied to '" +
destination + "' (current user '" + this.principal + "')" ); destination + "' (current user '" + this.principal + "')" );
@ -658,7 +651,8 @@ public class ArchivaDavResource
return (ArchivaDavResource) resource; return (ArchivaDavResource) resource;
} }
private void triggerAuditEvent( String remoteIP, String repositoryId, String resource, String action ) private void triggerAuditEvent( String remoteIP, String principal, String repositoryId, String resource,
String action )
{ {
AuditEvent event = new AuditEvent( repositoryId, principal, resource, action ); AuditEvent event = new AuditEvent( repositoryId, principal, resource, action );
event.setRemoteIP( remoteIP ); event.setRemoteIP( remoteIP );

View File

@ -800,6 +800,11 @@ public class ArchivaDavResourceFactory
return archivaLocator; return archivaLocator;
} }
public ArchivaAuditLogsDao getAuditLogsDao()
{
return auditLogsDao;
}
private static class LogicalResource private static class LogicalResource
{ {
private String path; private String path;

View File

@ -22,6 +22,7 @@ package org.apache.maven.archiva.webdav;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.List;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -32,6 +33,10 @@ import org.apache.jackrabbit.webdav.DavSessionProvider;
import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration; import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import org.apache.maven.archiva.database.ArchivaAuditLogsDao;
import org.apache.maven.archiva.database.constraints.MostRecentArchivaAuditLogsConstraint;
import org.apache.maven.archiva.model.ArchivaAuditLogs;
import org.apache.maven.archiva.repository.audit.AuditLog;
import org.apache.maven.archiva.security.ArchivaRoleConstants; import org.apache.maven.archiva.security.ArchivaRoleConstants;
import org.apache.maven.archiva.security.ServletAuthenticator; import org.apache.maven.archiva.security.ServletAuthenticator;
import org.codehaus.plexus.redback.authentication.AuthenticationException; import org.codehaus.plexus.redback.authentication.AuthenticationException;
@ -376,6 +381,10 @@ public class RepositoryServletSecurityTest
servletAuthControl.verify(); servletAuthControl.verify();
// assertEquals(HttpServletResponse.SC_CREATED, response.getResponseCode()); // assertEquals(HttpServletResponse.SC_CREATED, response.getResponseCode());
ArchivaAuditLogsDao auditLogsDao = archivaDavResourceFactory.getAuditLogsDao();
List<ArchivaAuditLogs> auditLogs = auditLogsDao.queryAuditLogs( new MostRecentArchivaAuditLogsConstraint() );
assertEquals( "admin", auditLogs.get( 0 ).getUsername() );
} }
// test get with invalid user, and guest has read access to repo // test get with invalid user, and guest has read access to repo