You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ca...@apache.org on 2006/07/10 00:10:38 UTC
svn commit: r420360 - in
/maven/continuum/branches/continuum-acegi/continuum-core: pom.xml
src/main/java/org/apache/maven/continuum/security/ContinuumAuthenticator.java
Author: carlos
Date: Sun Jul 9 15:10:37 2006
New Revision: 420360
URL: http://svn.apache.org/viewvc?rev=420360&view=rev
Log:
Implement acegi interface to load users from Continuum DB
Modified:
maven/continuum/branches/continuum-acegi/continuum-core/pom.xml
maven/continuum/branches/continuum-acegi/continuum-core/src/main/java/org/apache/maven/continuum/security/ContinuumAuthenticator.java
Modified: maven/continuum/branches/continuum-acegi/continuum-core/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-core/pom.xml?rev=420360&r1=420359&r2=420360&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-core/pom.xml (original)
+++ maven/continuum/branches/continuum-acegi/continuum-core/pom.xml Sun Jul 9 15:10:37 2006
@@ -155,5 +155,9 @@
<artifactId>plexus-mail-sender-simple</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.acegisecurity</groupId>
+ <artifactId>acegi-security</artifactId>
+ </dependency>
</dependencies>
</project>
Modified: maven/continuum/branches/continuum-acegi/continuum-core/src/main/java/org/apache/maven/continuum/security/ContinuumAuthenticator.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/continuum-acegi/continuum-core/src/main/java/org/apache/maven/continuum/security/ContinuumAuthenticator.java?rev=420360&r1=420359&r2=420360&view=diff
==============================================================================
--- maven/continuum/branches/continuum-acegi/continuum-core/src/main/java/org/apache/maven/continuum/security/ContinuumAuthenticator.java (original)
+++ maven/continuum/branches/continuum-acegi/continuum-core/src/main/java/org/apache/maven/continuum/security/ContinuumAuthenticator.java Sun Jul 9 15:10:37 2006
@@ -1,7 +1,7 @@
package org.apache.maven.continuum.security;
/*
- * Copyright 2005 The Apache Software Foundation.
+ * Copyright 2005-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,11 @@
*
*/
+import java.util.Map;
+
+import org.acegisecurity.userdetails.UserDetails;
+import org.acegisecurity.userdetails.UserDetailsService;
+import org.acegisecurity.userdetails.UsernameNotFoundException;
import org.apache.maven.continuum.model.system.ContinuumUser;
import org.apache.maven.continuum.store.ContinuumStore;
import org.apache.maven.continuum.store.ContinuumStoreException;
@@ -25,8 +30,8 @@
import org.codehaus.plexus.security.exception.AuthenticationException;
import org.codehaus.plexus.security.exception.UnauthorizedException;
import org.codehaus.plexus.security.exception.UnknownEntityException;
-
-import java.util.Map;
+import org.springframework.dao.DataAccessException;
+import org.springframework.dao.DataAccessResourceFailureException;
/**
* TODO: Move this to o.a.m.c.security once plexus-security doesn't depend on plexus-summit.
@@ -35,7 +40,7 @@
* @version $Id$
*/
public class ContinuumAuthenticator
- implements Authenticator
+ implements Authenticator, UserDetailsService
{
/**
* @plexus.requirement
@@ -71,6 +76,25 @@
return null;
}
+ public UserDetails loadUserByUsername( String username )
+ throws UsernameNotFoundException, DataAccessException
+ {
+ ContinuumUser user;
+ try
+ {
+ user = store.getUserByUsername( username );
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new DataAccessResourceFailureException( e.getMessage(), e );
+ }
+ if ( user == null )
+ {
+ throw new UsernameNotFoundException( "Could not find user: " + username );
+ }
+ return getUserDetails( user );
+ }
+
public Authentication getAnonymousEntity()
{
throw new RuntimeException( "Not implemented" );
@@ -91,5 +115,19 @@
{
throw new AuthenticationException( "Error while retreiving user.", e );
}
+ }
+
+ /**
+ * Convert a Continuum user into a Acegi user
+ *
+ * @param user the continuum user loaded from DB
+ * @return the Acegi user
+ */
+ private UserDetails getUserDetails( ContinuumUser user )
+ {
+ UserDetails userDetails = null;
+ //TODO
+ //new User( user.getUsername(), user.getPassword(),...);
+ return userDetails;
}
}