X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fwidgets%2Fauth%2FCmsLogin.java;h=4af348059fa30fe528a676eda78336f8090aa866;hb=636529bb7df0774617693e452b04a4c61dda16cb;hp=1809998070bc5e2a724a90b34b4e02a58cfd93fb;hpb=7e333073d07b780efe681306a1842a750cbea83c;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/widgets/auth/CmsLogin.java b/org.argeo.cms.ui/src/org/argeo/cms/widgets/auth/CmsLogin.java index 180999807..4af348059 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/widgets/auth/CmsLogin.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/widgets/auth/CmsLogin.java @@ -13,14 +13,12 @@ import javax.security.auth.callback.LanguageCallback; import javax.security.auth.callback.NameCallback; import javax.security.auth.callback.PasswordCallback; import javax.security.auth.callback.UnsupportedCallbackException; -import javax.security.auth.login.FailedLoginException; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.cms.CmsMsg; -import org.argeo.cms.auth.CurrentUser; import org.argeo.cms.auth.HttpRequestCallback; import org.argeo.cms.i18n.LocaleUtils; import org.argeo.cms.ui.CmsStyles; @@ -80,7 +78,7 @@ public class CmsLogin implements CmsStyles, CallbackHandler { } protected boolean isAnonymous() { - return CurrentUser.isAnonymous(cmsView.getLoginContext().getSubject()); + return cmsView.isAnonymous(); } public final void createUi(Composite parent) { @@ -247,16 +245,22 @@ public class CmsLogin implements CmsStyles, CallbackHandler { protected boolean login() { // Subject subject = cmsView.getLoginContext().getSubject(); - LoginContext loginContext = cmsView.getLoginContext(); + // LoginContext loginContext = cmsView.getLoginContext(); try { // // LOGIN // - loginContext.logout(); - loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, this); + // loginContext.logout(); + LoginContext loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, this); loginContext.login(); - } catch (FailedLoginException e) { - log.warn(e.getMessage()); + cmsView.authChange(loginContext); + return true; + } catch (LoginException e) { + if (log.isTraceEnabled()) + log.warn("Login failed: " + e.getMessage(), e); + else + log.warn("Login failed: " + e.getMessage()); + try { Thread.sleep(3000); } catch (InterruptedException e2) { @@ -264,12 +268,11 @@ public class CmsLogin implements CmsStyles, CallbackHandler { } // ErrorFeedback.show("Login failed", e); return false; - } catch (LoginException e) { - log.error("Cannot login", e); - return false; } - cmsView.authChange(loginContext); - return true; + // catch (LoginException e) { + // log.error("Cannot login", e); + // return false; + // } } protected void logout() { @@ -284,9 +287,10 @@ public class CmsLogin implements CmsStyles, CallbackHandler { ((NameCallback) callback).setName(usernameT.getText()); else if (callback instanceof PasswordCallback && passwordT != null) ((PasswordCallback) callback).setPassword(passwordT.getTextChars()); - else if (callback instanceof HttpRequestCallback) + else if (callback instanceof HttpRequestCallback) { ((HttpRequestCallback) callback).setRequest(UiContext.getHttpRequest()); - else if (callback instanceof LanguageCallback && localeChoice != null) + ((HttpRequestCallback) callback).setResponse(UiContext.getHttpResponse()); + } else if (callback instanceof LanguageCallback && localeChoice != null) ((LanguageCallback) callback).setLocale(localeChoice.getSelectedLocale()); } }