mirror of https://github.com/apache/archiva.git
[ARCHIVA-938] Remove harcoded guest user
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@752384 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
bf03bbad7a
commit
aae839ff4b
|
@ -36,10 +36,6 @@ public class ArchivaRoleConstants
|
|||
|
||||
public static final String GUEST_ROLE = "Guest";
|
||||
|
||||
// principals
|
||||
|
||||
public static final String PRINCIPAL_GUEST = "guest";
|
||||
|
||||
// dynamic role prefixes
|
||||
public static final String REPOSITORY_MANAGER_ROLE_PREFIX = "Repository Manager";
|
||||
|
||||
|
|
|
@ -24,26 +24,17 @@ import java.util.Map;
|
|||
import org.codehaus.plexus.redback.system.SecuritySession;
|
||||
import org.codehaus.plexus.redback.system.SecuritySystemConstants;
|
||||
import org.codehaus.plexus.redback.users.User;
|
||||
import org.codehaus.plexus.redback.users.UserManager;
|
||||
import org.codehaus.plexus.registry.Registry;
|
||||
|
||||
/**
|
||||
* ArchivaXworkUser
|
||||
*
|
||||
* @version $Id$
|
||||
*
|
||||
* @plexus.component role="org.apache.maven.archiva.security.ArchivaXworkUser"
|
||||
*/
|
||||
public class ArchivaXworkUser
|
||||
{
|
||||
/**
|
||||
* @plexus.requirement role-hint="commons-configuration"
|
||||
*/
|
||||
private Registry registry;
|
||||
|
||||
private static final String KEY = "org.codehaus.plexus.redback";
|
||||
|
||||
private static String guest;
|
||||
|
||||
public String getActivePrincipal( Map<String, Object> sessionMap )
|
||||
{
|
||||
if ( sessionMap == null )
|
||||
|
@ -51,7 +42,7 @@ public class ArchivaXworkUser
|
|||
return getGuest();
|
||||
}
|
||||
|
||||
SecuritySession securitySession =
|
||||
SecuritySession securitySession =
|
||||
(SecuritySession) sessionMap.get( SecuritySystemConstants.SECURITY_SESSION_KEY );
|
||||
|
||||
if ( securitySession == null )
|
||||
|
@ -75,17 +66,6 @@ public class ArchivaXworkUser
|
|||
|
||||
public String getGuest()
|
||||
{
|
||||
if( guest == null || "".equals( guest ) )
|
||||
{
|
||||
Registry subset = registry.getSubset( KEY );
|
||||
guest = subset.getString( "redback.default.guest", ArchivaRoleConstants.PRINCIPAL_GUEST );
|
||||
}
|
||||
|
||||
return guest;
|
||||
}
|
||||
|
||||
public void setGuest( String guesT )
|
||||
{
|
||||
guest = guesT;
|
||||
return UserManager.GUEST_USERNAME;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
|
|||
* SecurityStartup
|
||||
*
|
||||
* @version $Id$
|
||||
*
|
||||
* @plexus.component role="org.apache.maven.archiva.security.SecurityStartup"
|
||||
*/
|
||||
public class SecurityStartup
|
||||
|
@ -70,6 +69,11 @@ public class SecurityStartup
|
|||
*/
|
||||
private ArchivaConfiguration archivaConfiguration;
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
private ArchivaXworkUser archivaXworkUser;
|
||||
|
||||
public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
|
||||
{
|
||||
if ( ConfigurationNames.isManagedRepositories( propertyName ) )
|
||||
|
@ -84,8 +88,7 @@ public class SecurityStartup
|
|||
{
|
||||
String repoId = repoConfig.getId();
|
||||
|
||||
// TODO: Use the Redback / UserConfiguration..getString( "redback.default.guest" ) to get the right name.
|
||||
String principal = "guest";
|
||||
String principal = archivaXworkUser.getGuest();
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -106,8 +109,8 @@ public class SecurityStartup
|
|||
catch ( RbacManagerException e )
|
||||
{
|
||||
log.warn(
|
||||
"Unable to add role [" + ArchivaRoleConstants.toRepositoryObserverRoleName( repoId )
|
||||
+ "] to " + principal + " user.", e );
|
||||
"Unable to add role [" + ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) + "] to " +
|
||||
principal + " user.", e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -156,8 +159,8 @@ public class SecurityStartup
|
|||
{
|
||||
if ( ( checkers == null ) || CollectionUtils.isEmpty( checkers.values() ) )
|
||||
{
|
||||
throw new ArchivaException( "Unable to initialize the Redback Security Environment, "
|
||||
+ "no Environment Check components found." );
|
||||
throw new ArchivaException(
|
||||
"Unable to initialize the Redback Security Environment, " + "no Environment Check components found." );
|
||||
}
|
||||
|
||||
List<String> violations = new ArrayList<String>();
|
||||
|
@ -186,8 +189,8 @@ public class SecurityStartup
|
|||
msg.append( "======================================================================" );
|
||||
log.error( msg.toString() );
|
||||
|
||||
throw new ArchivaException( "Unable to initialize Redback Security Environment, [" + violations.size()
|
||||
+ "] violation(s) encountered, See log for details." );
|
||||
throw new ArchivaException( "Unable to initialize Redback Security Environment, [" + violations.size() +
|
||||
"] violation(s) encountered, See log for details." );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
|||
import org.apache.maven.archiva.configuration.ConfigurationNames;
|
||||
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
|
||||
import org.apache.maven.archiva.security.ArchivaRoleConstants;
|
||||
import org.apache.maven.archiva.security.ArchivaXworkUser;
|
||||
import org.codehaus.plexus.redback.rbac.RBACManager;
|
||||
import org.codehaus.plexus.redback.rbac.RbacManagerException;
|
||||
import org.codehaus.plexus.redback.rbac.UserAssignment;
|
||||
|
@ -45,7 +46,6 @@ import org.slf4j.LoggerFactory;
|
|||
* ConfigurationSynchronization
|
||||
*
|
||||
* @version $Id$
|
||||
*
|
||||
* @plexus.component role="org.apache.maven.archiva.web.startup.SecuritySynchronization"
|
||||
* role-hint="default"
|
||||
*/
|
||||
|
@ -74,6 +74,11 @@ public class SecuritySynchronization
|
|||
*/
|
||||
private ArchivaConfiguration archivaConfiguration;
|
||||
|
||||
/**
|
||||
* @plexus.requirement
|
||||
*/
|
||||
private ArchivaXworkUser archivaXworkUser;
|
||||
|
||||
public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
|
||||
{
|
||||
if ( ConfigurationNames.isManagedRepositories( propertyName ) )
|
||||
|
@ -96,18 +101,18 @@ public class SecuritySynchronization
|
|||
// manage roles for repositories
|
||||
try
|
||||
{
|
||||
if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoConfig
|
||||
.getId() ) )
|
||||
if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER,
|
||||
repoConfig.getId() ) )
|
||||
{
|
||||
roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoConfig
|
||||
.getId() );
|
||||
roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER,
|
||||
repoConfig.getId() );
|
||||
}
|
||||
|
||||
if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoConfig
|
||||
.getId() ) )
|
||||
if ( !roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER,
|
||||
repoConfig.getId() ) )
|
||||
{
|
||||
roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoConfig
|
||||
.getId() );
|
||||
roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER,
|
||||
repoConfig.getId() );
|
||||
}
|
||||
}
|
||||
catch ( RoleManagerException e )
|
||||
|
@ -137,8 +142,8 @@ public class SecuritySynchronization
|
|||
{
|
||||
if ( ( checkers == null ) || CollectionUtils.isEmpty( checkers.values() ) )
|
||||
{
|
||||
throw new ArchivaException( "Unable to initialize the Redback Security Environment, "
|
||||
+ "no Environment Check components found." );
|
||||
throw new ArchivaException(
|
||||
"Unable to initialize the Redback Security Environment, " + "no Environment Check components found." );
|
||||
}
|
||||
|
||||
List<String> violations = new ArrayList<String>();
|
||||
|
@ -172,8 +177,8 @@ public class SecuritySynchronization
|
|||
msg.append( "======================================================================" );
|
||||
log.error( msg.toString() );
|
||||
|
||||
throw new ArchivaException( "Unable to initialize Redback Security Environment, [" + violations.size()
|
||||
+ "] violation(s) encountered, See log for details." );
|
||||
throw new ArchivaException( "Unable to initialize Redback Security Environment, [" + violations.size() +
|
||||
"] violation(s) encountered, See log for details." );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -183,8 +188,7 @@ public class SecuritySynchronization
|
|||
{
|
||||
String repoId = repoConfig.getId();
|
||||
|
||||
// TODO: Use the Redback / UserConfiguration..getString( "redback.default.guest" ) to get the right name.
|
||||
String principal = "guest";
|
||||
String principal = archivaXworkUser.getGuest();
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -204,8 +208,9 @@ public class SecuritySynchronization
|
|||
}
|
||||
catch ( RbacManagerException e )
|
||||
{
|
||||
log.warn( "Unable to add role [" + ArchivaRoleConstants.toRepositoryObserverRoleName( repoId )
|
||||
+ "] to " + principal + " user.", e );
|
||||
log.warn(
|
||||
"Unable to add role [" + ArchivaRoleConstants.toRepositoryObserverRoleName( repoId ) + "] to " +
|
||||
principal + " user.", e );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,8 +85,6 @@ public class RepositoryServletSecurityTest
|
|||
|
||||
private HttpAuthenticator httpAuth;
|
||||
|
||||
private ArchivaXworkUser archivaXworkUser;
|
||||
|
||||
private RepositoryServlet servlet;
|
||||
|
||||
public void setUp()
|
||||
|
@ -125,8 +123,7 @@ public class RepositoryServletSecurityTest
|
|||
httpAuthControl.setDefaultMatcher( MockControl.ALWAYS_MATCHER );
|
||||
httpAuth = (HttpAuthenticator) httpAuthControl.getMock();
|
||||
|
||||
archivaXworkUser = new ArchivaXworkUser();
|
||||
archivaXworkUser.setGuest( "guest" );
|
||||
ArchivaXworkUser archivaXworkUser = (ArchivaXworkUser) lookup( ArchivaXworkUser.class );
|
||||
|
||||
davSessionProvider = new ArchivaDavSessionProvider( servletAuth, httpAuth, archivaXworkUser );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue