X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fhttp%2FCmsAuthenticator.java;h=5d96244d8ed4cdb1cbb9e77e8346f2168e430af3;hb=5b6b49fa655c7b3ae3dcc06d6c504e3d0225684f;hp=307f928a5c9658f52bca202cf8d24f0655c0e403;hpb=921b6cf95420aafa6b9cebe107c927e8062ed865;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/http/CmsAuthenticator.java b/org.argeo.cms/src/org/argeo/cms/internal/http/CmsAuthenticator.java index 307f928a5..5d96244d8 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/http/CmsAuthenticator.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/http/CmsAuthenticator.java @@ -10,18 +10,13 @@ import org.argeo.cms.auth.RemoteAuthCallbackHandler; import org.argeo.cms.auth.RemoteAuthRequest; import org.argeo.cms.auth.RemoteAuthResponse; import org.argeo.cms.auth.RemoteAuthUtils; -import org.argeo.util.CurrentSubject; import com.sun.net.httpserver.Authenticator; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpPrincipal; +/** An {@link Authenticator} implementation based on CMS authentication. */ public class CmsAuthenticator extends Authenticator { -// final static String HEADER_AUTHORIZATION = "Authorization"; -// final static String HEADER_WWW_AUTHENTICATE = "WWW-Authenticate"; - -// private final static CmsLog log = CmsLog.getLog(CmsAuthenticator.class); - // TODO make it configurable private final String httpAuthRealm = "Argeo"; private final boolean forceBasic = false; @@ -38,9 +33,9 @@ public class CmsAuthenticator extends Authenticator { lc = CmsAuth.USER.newLoginContext(new RemoteAuthCallbackHandler(remoteAuthExchange, remoteAuthExchange)); lc.login(); } catch (LoginException e) { - // FIXME better analyse failure so as not to try endlessly - if (authIsRequired(remoteAuthExchange,remoteAuthExchange)) { - int statusCode = RemoteAuthUtils.askForWwwAuth(remoteAuthExchange, httpAuthRealm, forceBasic); + if (authIsRequired(remoteAuthExchange, remoteAuthExchange)) { + int statusCode = RemoteAuthUtils.askForWwwAuth(remoteAuthExchange, remoteAuthExchange, httpAuthRealm, + forceBasic); return new Authenticator.Retry(statusCode); } else { @@ -54,10 +49,10 @@ public class CmsAuthenticator extends Authenticator { Subject subject = lc.getSubject(); - CurrentSubject.callAs(subject, () -> { - RemoteAuthUtils.configureRequestSecurity(remoteAuthExchange); - return null; - }); +// CurrentSubject.callAs(subject, () -> { +// RemoteAuthUtils.configureRequestSecurity(remoteAuthExchange); +// return null; +// }); // Subject.doAs(subject, new PrivilegedAction() { // // @Override @@ -73,8 +68,7 @@ public class CmsAuthenticator extends Authenticator { return new Authenticator.Success(httpPrincipal); } - protected boolean authIsRequired(RemoteAuthRequest remoteAuthRequest, - RemoteAuthResponse remoteAuthResponse) { + protected boolean authIsRequired(RemoteAuthRequest remoteAuthRequest, RemoteAuthResponse remoteAuthResponse) { return true; }