improve authentication system

This commit is contained in:
Sebastian Sdorra
2010-12-04 15:58:13 +01:00
parent 38c3a952c8
commit d506310e29
4 changed files with 60 additions and 8 deletions

View File

@@ -59,7 +59,7 @@ import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD) @XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = @XmlType(propOrder =
{ {
"name", "displayName", "mail", "password", "admin", "type" "name", "displayName", "mail", "password", "admin", "type", "lastLogin"
}) })
public class User public class User
implements TypedObject, Principal, Cloneable, Validateable, Serializable implements TypedObject, Principal, Cloneable, Validateable, Serializable
@@ -237,6 +237,17 @@ public class User
return displayName; return displayName;
} }
/**
* Method description
*
*
* @return
*/
public long getLastLogin()
{
return lastLogin;
}
/** /**
* Method description * Method description
* *
@@ -332,6 +343,17 @@ public class User
this.displayName = displayName; this.displayName = displayName;
} }
/**
* Method description
*
*
* @param lastLogin
*/
public void setLastLogin(long lastLogin)
{
this.lastLogin = lastLogin;
}
/** /**
* Method description * Method description
* *
@@ -385,6 +407,9 @@ public class User
/** Field description */ /** Field description */
private String displayName; private String displayName;
/** Field description */
private long lastLogin;
/** Field description */ /** Field description */
private String mail; private String mail;

View File

@@ -43,4 +43,16 @@ import sonia.scm.Manager;
* @author Sebastian Sdorra * @author Sebastian Sdorra
*/ */
public interface UserManager public interface UserManager
extends Manager<User, UserException>, ListenerSupport<UserListener> {} extends Manager<User, UserException>, ListenerSupport<UserListener>
{
/**
* Method description
*
*
* @param username
*
* @return
*/
public boolean contains(String username);
}

View File

@@ -115,6 +115,20 @@ public class XmlUserManager extends AbstractUserManager
// do nothing // do nothing
} }
/**
* Method description
*
*
* @param username
*
* @return
*/
@Override
public boolean contains(String username)
{
return userDB.contains(username);
}
/** /**
* Method description * Method description
* *

View File

@@ -46,8 +46,9 @@ import sonia.scm.plugin.ext.Extension;
import sonia.scm.plugin.ext.ExtensionProcessor; import sonia.scm.plugin.ext.ExtensionProcessor;
import sonia.scm.repository.RepositoryHandler; import sonia.scm.repository.RepositoryHandler;
import sonia.scm.security.EncryptionHandler; import sonia.scm.security.EncryptionHandler;
import sonia.scm.web.security.AuthenticationHandler;
import sonia.scm.web.security.AuthenticationManager; import sonia.scm.web.security.AuthenticationManager;
import sonia.scm.web.security.XmlAuthenticationManager; import sonia.scm.web.security.XmlAuthenticationHandler;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -91,10 +92,10 @@ public class BindingExtensionProcessor implements ExtensionProcessor
{ {
Multibinder<RepositoryHandler> repositoryHandlers = Multibinder<RepositoryHandler> repositoryHandlers =
Multibinder.newSetBinder(binder, RepositoryHandler.class); Multibinder.newSetBinder(binder, RepositoryHandler.class);
Multibinder<AuthenticationManager> authenticators = Multibinder<AuthenticationHandler> authenticators =
Multibinder.newSetBinder(binder, AuthenticationManager.class); Multibinder.newSetBinder(binder, AuthenticationHandler.class);
authenticators.addBinding().to(XmlAuthenticationManager.class); authenticators.addBinding().to(XmlAuthenticationHandler.class);
for (Class extensionClass : extensions) for (Class extensionClass : extensions)
{ {
@@ -114,11 +115,11 @@ public class BindingExtensionProcessor implements ExtensionProcessor
{ {
bind(binder, EncryptionHandler.class, extensionClass); bind(binder, EncryptionHandler.class, extensionClass);
} }
else if (AuthenticationManager.class.isAssignableFrom(extensionClass)) else if (AuthenticationHandler.class.isAssignableFrom(extensionClass))
{ {
if (logger.isInfoEnabled()) if (logger.isInfoEnabled())
{ {
logger.info("bind Authenticator {}", extensionClass.getName()); logger.info("bind AuthenticationHandler {}", extensionClass.getName());
} }
binder.bind(extensionClass); binder.bind(extensionClass);