X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FIdentLoginModule.java;h=097e588e43737e83f09e6633a5309dcc8bdf25c4;hb=f4da6777015da3fc392138f0c01cea2f2add9ed3;hp=b831097ccd3d034729c16eab2026414077c9250f;hpb=a394abb1f514c5e65d6ed1b197468f468bdc09b2;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/IdentLoginModule.java b/org.argeo.cms/src/org/argeo/cms/auth/IdentLoginModule.java index b831097cc..097e588e4 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/IdentLoginModule.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/IdentLoginModule.java @@ -9,24 +9,22 @@ import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.UnsupportedCallbackException; import javax.security.auth.login.LoginException; import javax.security.auth.spi.LoginModule; -import javax.servlet.http.HttpServletRequest; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.cms.internal.kernel.Activator; -import org.argeo.ident.IdentClient; +import org.argeo.api.cms.CmsLog; +import org.argeo.cms.auth.ident.IdentClient; +import org.argeo.cms.internal.runtime.CmsStateImpl; +/** Use an ident service to identify. */ public class IdentLoginModule implements LoginModule { - private final static Log log = LogFactory.getLog(IdentLoginModule.class); + private final static CmsLog log = CmsLog.getLog(IdentLoginModule.class); - private Subject subject = null; private CallbackHandler callbackHandler = null; private Map sharedState = null; + @SuppressWarnings("unchecked") @Override public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) { - this.subject = subject; this.callbackHandler = callbackHandler; this.sharedState = (Map) sharedState; } @@ -35,7 +33,7 @@ public class IdentLoginModule implements LoginModule { public boolean login() throws LoginException { if (callbackHandler == null) return false; - HttpRequestCallback httpCallback = new HttpRequestCallback(); + RemoteAuthCallback httpCallback = new RemoteAuthCallback(); try { callbackHandler.handle(new Callback[] { httpCallback }); } catch (IOException e) { @@ -43,8 +41,10 @@ public class IdentLoginModule implements LoginModule { } catch (UnsupportedCallbackException e) { return false; } - HttpServletRequest request = httpCallback.getRequest(); - IdentClient identClient = Activator.getIdentClient(request.getRemoteAddr()); + RemoteAuthRequest request = httpCallback.getRequest(); + if (request == null) + return false; + IdentClient identClient = CmsStateImpl.getIdentClient(request.getRemoteAddr()); if (identClient == null) return false; String identUsername;