X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fwidgets%2Fauth%2FCmsLogin.java;h=e450bfa075040bb0f30926dfb1cd6225faa42711;hb=d4aea98e59c1754bdf557e43f19b9462053b59b2;hp=fc9b7768995e71387084f4f9fef5526effcd7dfb;hpb=2d5dd10f58c42aab9351c76801c57034cbe87f8e;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 fc9b77689..e450bfa07 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 @@ -7,6 +7,7 @@ import java.io.IOException; import java.util.List; import java.util.Locale; +import javax.security.auth.Subject; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.LanguageCallback; @@ -57,6 +58,9 @@ public class CmsLogin implements CmsStyles, CallbackHandler { private final CmsView cmsView; + // optional subject to be set explicitly + private Subject subject = null; + public CmsLogin(CmsView cmsView) { this.cmsView = cmsView; defaultLocale = Activator.getNodeState().getDefaultLocale(); @@ -187,7 +191,7 @@ public class CmsLogin implements CmsStyles, CallbackHandler { } /** - * To be overridden in order to provide custome login button and other links. + * To be overridden in order to provide custom login button and other links. */ protected void extendsCredentialsBlock(Composite credentialsBlock, Locale selectedLocale, SelectionListener loginSelectionListener) { @@ -242,6 +246,7 @@ public class CmsLogin implements CmsStyles, CallbackHandler { } protected boolean login() { + // TODO use CmsVie in order to retrieve subject? // Subject subject = cmsView.getLoginContext().getSubject(); // LoginContext loginContext = cmsView.getLoginContext(); try { @@ -249,7 +254,7 @@ public class CmsLogin implements CmsStyles, CallbackHandler { // LOGIN // // loginContext.logout(); - LoginContext loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, this); + LoginContext loginContext = new LoginContext(NodeConstants.LOGIN_CONTEXT_USER, subject, this); loginContext.login(); cmsView.authChange(loginContext); return true; @@ -304,4 +309,8 @@ public class CmsLogin implements CmsStyles, CallbackHandler { } } + public void setSubject(Subject subject) { + this.subject = subject; + } + }