Author: oching
Date: Sat May 10 20:22:48 2008
New Revision: 655233
URL: http://svn.apache.org/viewvc?rev=655233&view=rev
Log:
[MRM-773]
-remove archiva-security dependency to xwork-integration
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-security/pom.xml
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-security/pom.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-security/pom.xml?rev=655233&r1=655232&r2=655233&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-security/pom.xml
(original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-security/pom.xml Sat May
10 20:22:48 2008
@@ -117,20 +117,5 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.codehaus.plexus.redback</groupId>
- <artifactId>redback-xwork-integration</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- <scope>provided</scope>
- </dependency>
</dependencies>
</project>
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java?rev=655233&r1=655232&r2=655233&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ArchivaServletAuthenticator.java
Sat May 10 20:22:48 2008
@@ -30,7 +30,6 @@
import org.codehaus.plexus.redback.policy.MustChangePasswordException;
import org.codehaus.plexus.redback.system.SecuritySession;
import org.codehaus.plexus.redback.system.SecuritySystem;
-import
org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,44 +41,36 @@
implements ServletAuthenticator
{
private Logger log = LoggerFactory.getLogger(
ArchivaServletAuthenticator.class );
-
- /**
- * @plexus.requirement role-hint="basic"
- */
- private HttpAuthenticator httpAuth;
/**
* @plexus.requirement
*/
private SecuritySystem securitySystem;
-
- public boolean isAuthenticated( HttpServletRequest request, String
repositoryId )
- throws AuthenticationException, AccountLockedException,
MustChangePasswordException
- {
- AuthenticationResult result = httpAuth.getAuthenticationResult(
request, null );
-
+
+ public boolean isAuthenticated( HttpServletRequest request,
AuthenticationResult result, String repositoryId )
+ throws AuthenticationException, AccountLockedException,
MustChangePasswordException
+ {
if ( result != null && !result.isAuthenticated() )
{
- throw new AuthenticationException( "User Credentials Invalid" );
- }
+ throw new AuthenticationException( "User Credentials Invalid" );
+ }
return true;
}
- public boolean isAuthorized( HttpServletRequest request, String
repositoryId, boolean isWriteRequest )
+ public boolean isAuthorized( HttpServletRequest request, SecuritySession
securitySession, String repositoryId,
+ boolean isWriteRequest )
throws AuthorizationException
- {
- SecuritySession securitySession = httpAuth.getSecuritySession();
-
+ {
String permission = ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS;
if ( isWriteRequest )
{
permission = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD;
}
-
+
AuthorizationResult authzResult = securitySystem.authorize(
securitySession, permission, repositoryId );
-
+
if ( !authzResult.isAuthorized() )
{
if ( authzResult.getException() != null )
@@ -87,9 +78,9 @@
log.info( "Authorization Denied [ip=" +
request.getRemoteAddr() + ",isWriteRequest=" + isWriteRequest +
",permission=" + permission + ",repo=" + repositoryId + "]
: " +
authzResult.getException().getMessage() );
- }
+ }
}
return true;
- }
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java?rev=655233&r1=655232&r2=655233&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-security/src/main/java/org/apache/maven/archiva/security/ServletAuthenticator.java
Sat May 10 20:22:48 2008
@@ -22,20 +22,21 @@
import javax.servlet.http.HttpServletRequest;
import org.codehaus.plexus.redback.authentication.AuthenticationException;
+import org.codehaus.plexus.redback.authentication.AuthenticationResult;
import org.codehaus.plexus.redback.authorization.AuthorizationException;
import org.codehaus.plexus.redback.policy.AccountLockedException;
import org.codehaus.plexus.redback.policy.MustChangePasswordException;
+import org.codehaus.plexus.redback.system.SecuritySession;
/**
- *
* @author <a href="mailto:[EMAIL PROTECTED]">Maria Odea Ching</a>
- * @version
+ * @version
*/
public interface ServletAuthenticator
{
- public boolean isAuthenticated( HttpServletRequest request, String
repositoryId )
+ public boolean isAuthenticated( HttpServletRequest request,
AuthenticationResult result, String repositoryId )
throws AuthenticationException, AccountLockedException,
MustChangePasswordException;
-
- public boolean isAuthorized( HttpServletRequest request, String
repositoryId, boolean isWriteRequest )
- throws AuthorizationException;
+
+ public boolean isAuthorized( HttpServletRequest request, SecuritySession
securitySession, String repositoryId,
+ boolean isWriteRequest ) throws AuthorizationException;
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java?rev=655233&r1=655232&r2=655233&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
Sat May 10 20:22:48 2008
@@ -42,10 +42,13 @@
import org.apache.maven.archiva.security.ServletAuthenticator;
import org.apache.maven.archiva.security.UserRepositories;
import org.codehaus.plexus.redback.authentication.AuthenticationException;
+import org.codehaus.plexus.redback.authentication.AuthenticationResult;
import org.codehaus.plexus.redback.authorization.AuthorizationException;
import org.codehaus.plexus.redback.policy.AccountLockedException;
import org.codehaus.plexus.redback.policy.MustChangePasswordException;
+import org.codehaus.plexus.redback.system.SecuritySession;
import org.codehaus.plexus.redback.users.UserNotFoundException;
+import
org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator;
import org.codehaus.plexus.spring.PlexusToSpringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -83,19 +86,19 @@
private ServletAuthenticator servletAuth;
+ private HttpAuthenticator httpAuth;
+
public void init( javax.servlet.ServletConfig servletConfig )
throws ServletException
{
super.init( servletConfig );
wac = WebApplicationContextUtils.getRequiredWebApplicationContext(
servletConfig.getServletContext() );
- // securitySystem =
- // (SecuritySystem) wac.getBean( PlexusToSpringUtils.buildSpringId(
SecuritySystem.class.getName() ) );
userRepositories =
(UserRepositories) wac.getBean( PlexusToSpringUtils.buildSpringId(
UserRepositories.class.getName() ) );
- // httpAuth =
- // (HttpAuthenticator) wac.getBean( PlexusToSpringUtils.buildSpringId(
HttpAuthenticator.ROLE, "basic" ) );
servletAuth =
(ServletAuthenticator) wac.getBean(
PlexusToSpringUtils.buildSpringId( ServletAuthenticator.class.getName() ) );
+ httpAuth =
+ (HttpAuthenticator) wac.getBean(
PlexusToSpringUtils.buildSpringId( HttpAuthenticator.ROLE, "basic" ) );
}
public void doGet( HttpServletRequest req, HttpServletResponse res )
@@ -246,7 +249,11 @@
{
try
{
- if ( servletAuth.isAuthenticated( req, repoId ) &&
servletAuth.isAuthorized( req, repoId, false ) )
+ AuthenticationResult result =
httpAuth.getAuthenticationResult( req, null );
+ SecuritySession securitySession =
httpAuth.getSecuritySession();
+
+ if ( servletAuth.isAuthenticated( req, result, repoId ) &&
+ servletAuth.isAuthorized( req, securitySession, repoId,
false ) )
{
return true;
}
@@ -282,65 +289,4 @@
return Collections.emptyList();
}
- /*
- private boolean isAuthenticated( HttpServletRequest request, String
repositoryId )
- {
- try
- {
- AuthenticationResult result = httpAuth.getAuthenticationResult(
request, null );
-
- if ( result != null && !result.isAuthenticated() )
- {
- log.error( "User credentials is invalid." );
- return false;
- }
- }
- catch ( AuthenticationException e )
- {
- log.error( "User is not authenticated." );
- return false;
- }
- catch ( AccountLockedException e )
- {
- log.error( "User account is locked." );
- return false;
- }
- catch ( MustChangePasswordException e )
- {
- log.error( "Password must be changed." );
- return false;
- }
-
- return true;
- }
-
- private boolean isAuthorized( HttpServletRequest request, String
repositoryId )
- {
- SecuritySession securitySession = httpAuth.getSecuritySession();
-
- try
- {
- String permission =
ArchivaRoleConstants.OPERATION_REPOSITORY_ACCESS;
-
- AuthorizationResult authzResult = securitySystem.authorize(
securitySession, permission, repositoryId );
-
- if ( !authzResult.isAuthorized() )
- {
- if ( authzResult.getException() != null )
- {
- log.info( "Authorization Denied [ip=" +
request.getRemoteAddr() + ",permission=" + permission +
- ",repo=" + repositoryId + "] : " +
authzResult.getException().getMessage() );
- }
- return false;
- }
- }
- catch ( AuthorizationException e )
- {
- log.error( "Error in authorization : " + e.getMessage() );
- return false;
- }
-
- return true;
- }
- */
}
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml?rev=655233&r1=655232&r2=655233&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/pom.xml Sat May 10
20:22:48 2008
@@ -101,6 +101,16 @@
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.redback</groupId>
+ <artifactId>redback-xwork-integration</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
<!-- Required by it.could classes -->
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java?rev=655233&r1=655232&r2=655233&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavSessionProvider.java
Sat May 10 20:22:48 2008
@@ -27,8 +27,11 @@
import org.apache.maven.archiva.webdav.util.RepositoryPathUtil;
import org.apache.maven.archiva.security.ServletAuthenticator;
import org.codehaus.plexus.redback.authentication.AuthenticationException;
+import org.codehaus.plexus.redback.authentication.AuthenticationResult;
import org.codehaus.plexus.redback.policy.MustChangePasswordException;
import org.codehaus.plexus.redback.policy.AccountLockedException;
+import org.codehaus.plexus.redback.system.SecuritySession;
+import
org.codehaus.plexus.redback.xwork.filter.authentication.HttpAuthenticator;
import org.codehaus.plexus.redback.authorization.AuthorizationException;
import org.codehaus.plexus.spring.PlexusToSpringUtils;
import org.springframework.web.context.WebApplicationContext;
@@ -45,10 +48,14 @@
private Logger log =
LoggerFactory.getLogger(ArchivaDavSessionProvider.class);
private ServletAuthenticator servletAuth;
+
+ private HttpAuthenticator httpAuth;
public ArchivaDavSessionProvider(WebApplicationContext applicationContext)
{
servletAuth = (ServletAuthenticator) applicationContext.getBean(
PlexusToSpringUtils.buildSpringId( ServletAuthenticator.class.getName() ) );
+ httpAuth =
+ (HttpAuthenticator) applicationContext.getBean(
PlexusToSpringUtils.buildSpringId( HttpAuthenticator.ROLE, "basic" ) );
}
public boolean attachSession(WebdavRequest request) throws DavException
@@ -57,8 +64,11 @@
try
{
- return servletAuth.isAuthenticated(request, repositoryId) &&
- servletAuth.isAuthorized(request, repositoryId,
WebdavMethodUtil.isWriteMethod( request.getMethod() ) );
+ AuthenticationResult result = httpAuth.getAuthenticationResult(
request, null );
+ SecuritySession securitySession = httpAuth.getSecuritySession();
+
+ return servletAuth.isAuthenticated(request, result, repositoryId)
&&
+ servletAuth.isAuthorized(request, securitySession,
repositoryId, WebdavMethodUtil.isWriteMethod( request.getMethod() ) );
}
catch ( AuthenticationException e )
{