JDK HTTP server authentication
[lgpl/argeo-commons.git] / org.argeo.cms.lib.jetty / src / org / argeo / cms / jetty / CmsJettyServer.java
index 7f33beeb695d45110be5dd6550fe7a952ad02f7a..3b9783ef5bc016cacdad31dfb5a6a42885a22493 100644 (file)
@@ -9,6 +9,8 @@ import javax.servlet.ServletException;
 import javax.websocket.DeploymentException;
 import javax.websocket.server.ServerContainer;
 import javax.websocket.server.ServerEndpointConfig;
+import com.sun.net.httpserver.Authenticator;
+import com.sun.net.httpserver.HttpContext;
 
 import org.argeo.api.cms.CmsState;
 import org.argeo.cms.CmsDeployProperty;
@@ -38,6 +40,8 @@ public class CmsJettyServer extends JettyHttpServer {
 
        private CmsState cmsState;
 
+       private Authenticator defaultAuthenticator;
+
        protected void addServlets(ServletContextHandler servletContextHandler) throws ServletException {
        }
 
@@ -73,6 +77,13 @@ public class CmsJettyServer extends JettyHttpServer {
 
        }
 
+       @Override
+       public synchronized HttpContext createContext(String path) {
+               HttpContext httpContext = super.createContext(path);
+               httpContext.setAuthenticator(defaultAuthenticator);
+               return httpContext;
+       }
+
        protected void enableWebSocket(ServletContextHandler servletContextHandler) {
                String webSocketEnabled = getDeployProperty(CmsDeployProperty.WEBSOCKET_ENABLED);
                // web socket
@@ -107,4 +118,8 @@ public class CmsJettyServer extends JettyHttpServer {
                this.cmsState = cmsState;
        }
 
+       public void setDefaultAuthenticator(Authenticator defaultAuthenticator) {
+               this.defaultAuthenticator = defaultAuthenticator;
+       }
+
 }