X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FUserAdminLoginModule.java;h=2faee6fa1157a5ed0c0e6a2af3da0bbefec9b6ae;hb=a52f72fd8d7d5d6732817e331336e039b0005443;hp=db677f57e13dc7f9a5715459dc532248ac054f2f;hpb=ae0971ce77c7a7d5daaed3b84ae4a277f97449e2;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java index db677f57e..2faee6fa1 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/UserAdminLoginModule.java @@ -14,11 +14,14 @@ import javax.security.auth.callback.NameCallback; import javax.security.auth.callback.PasswordCallback; import javax.security.auth.callback.UnsupportedCallbackException; import javax.security.auth.login.CredentialNotFoundException; +import javax.security.auth.login.FailedLoginException; import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.argeo.ArgeoException; import org.argeo.cms.internal.kernel.Activator; import org.argeo.eclipse.ui.specific.UiContext; @@ -29,6 +32,9 @@ import org.osgi.service.useradmin.User; import org.osgi.service.useradmin.UserAdmin; public class UserAdminLoginModule implements LoginModule, AuthConstants { + private final static Log log = LogFactory + .getLog(UserAdminLoginModule.class); + private Subject subject; private CallbackHandler callbackHandler; private boolean isAnonymous = false; @@ -108,9 +114,15 @@ public class UserAdminLoginModule implements LoginModule, AuthConstants { User user = userAdmin.getUser(null, username); if (user == null) - return false; + throw new FailedLoginException("Invalid credentials"); if (!user.hasCredential(null, password)) - return false; + throw new FailedLoginException("Invalid credentials"); + // return false; + + // Log and monitor new login + if (log.isDebugEnabled()) + log.debug("Logged in to CMS with username [" + username+"]"); + authorization = userAdmin.getAuthorization(user); } }