X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FLoginEntryPoint.java;h=1f24da2f4327d3d9d27c550cd73aa059fafd390f;hb=1508906bdfce4a83d924c6fa4ff9ab10cf0fa6e1;hp=6b26b37288a1ff02124ac910b0e42bc75882ba18;hpb=a2ad417ed1d0219ac29d70ae985939764c13ce38;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/util/LoginEntryPoint.java b/org.argeo.cms.ui/src/org/argeo/cms/util/LoginEntryPoint.java index 6b26b3728..1f24da2f4 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/util/LoginEntryPoint.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/util/LoginEntryPoint.java @@ -5,6 +5,7 @@ import java.util.Locale; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.argeo.cms.CmsException; import org.argeo.cms.auth.CurrentUser; @@ -23,6 +24,8 @@ import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; public class LoginEntryPoint implements EntryPoint, CmsView { + protected final static String HEADER_WWW_AUTHENTICATE = "WWW-Authenticate"; + protected final static String HEADER_AUTHORIZATION = "Authorization"; // private final static Log log = LogFactory.getLog(WorkbenchLogin.class); // private final Subject subject = new Subject(); private LoginContext loginContext; @@ -40,6 +43,21 @@ public class LoginEntryPoint implements EntryPoint, CmsView { } catch (LoginException e) { loginShell.createUi(); loginShell.open(); + +// HttpServletRequest request = RWT.getRequest(); +// String authorization = request.getHeader(HEADER_AUTHORIZATION); +// if (authorization == null || !authorization.startsWith("Negotiate")) { +// HttpServletResponse response = RWT.getResponse(); +// response.setStatus(401); +// response.setHeader(HEADER_WWW_AUTHENTICATE, "Negotiate"); +// response.setDateHeader("Date", System.currentTimeMillis()); +// response.setDateHeader("Expires", System.currentTimeMillis() + (24 * 60 * 60 * 1000)); +// response.setHeader("Accept-Ranges", "bytes"); +// response.setHeader("Connection", "Keep-Alive"); +// response.setHeader("Keep-Alive", "timeout=5, max=97"); +// // response.setContentType("text/html; charset=UTF-8"); +// } + while (!loginShell.getShell().isDisposed()) { if (!display.readAndDispatch()) display.sleep();