Export RemoteAuthHttpExchange
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 18 Oct 2023 08:51:33 +0000 (10:51 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 18 Oct 2023 08:51:33 +0000 (10:51 +0200)
org.argeo.cms/src/org/argeo/cms/http/RemoteAuthHttpExchange.java [new file with mode: 0644]
org.argeo.cms/src/org/argeo/cms/http/server/HttpServerUtils.java
org.argeo.cms/src/org/argeo/cms/internal/http/CmsAuthenticator.java
org.argeo.cms/src/org/argeo/cms/internal/http/RemoteAuthHttpExchange.java [deleted file]
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsAcrHttpHandler.java

diff --git a/org.argeo.cms/src/org/argeo/cms/http/RemoteAuthHttpExchange.java b/org.argeo.cms/src/org/argeo/cms/http/RemoteAuthHttpExchange.java
new file mode 100644 (file)
index 0000000..7f34a52
--- /dev/null
@@ -0,0 +1,89 @@
+package org.argeo.cms.http;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+import java.util.Objects;
+
+import org.argeo.cms.auth.RemoteAuthRequest;
+import org.argeo.cms.auth.RemoteAuthResponse;
+import org.argeo.cms.auth.RemoteAuthSession;
+
+import com.sun.net.httpserver.HttpExchange;
+
+/**
+ * Implementation of {@link RemoteAuthRequest} and {@link RemoteAuthResponse}
+ * based on {@link HttpExchange}.
+ */
+public class RemoteAuthHttpExchange implements RemoteAuthRequest, RemoteAuthResponse {
+       private final HttpExchange httpExchange;
+       private RemoteAuthSession remoteAuthSession;
+
+       public RemoteAuthHttpExchange(HttpExchange httpExchange) {
+               this.httpExchange = httpExchange;
+               this.remoteAuthSession = (RemoteAuthSession) httpExchange.getAttribute(RemoteAuthSession.class.getName());
+               Objects.requireNonNull(this.remoteAuthSession);
+       }
+
+       @Override
+       public void setHeader(String headerName, String value) {
+               httpExchange.getResponseHeaders().put(headerName, Collections.singletonList(value));
+       }
+
+       @Override
+       public void addHeader(String headerName, String value) {
+               List<String> values = httpExchange.getResponseHeaders().getOrDefault(headerName, new ArrayList<>());
+               values.add(value);
+       }
+
+       @Override
+       public RemoteAuthSession getSession() {
+               return remoteAuthSession;
+       }
+
+       @Override
+       public RemoteAuthSession createSession() {
+               throw new UnsupportedOperationException("Cannot create remote session");
+       }
+
+       @Override
+       public Locale getLocale() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public Object getAttribute(String key) {
+               return httpExchange.getAttribute(key);
+       }
+
+       @Override
+       public void setAttribute(String key, Object object) {
+               httpExchange.setAttribute(key, object);
+       }
+
+       @Override
+       public String getHeader(String key) {
+               List<String> lst = httpExchange.getRequestHeaders().get(key);
+               if (lst == null || lst.size() == 0)
+                       return null;
+               return lst.get(0);
+       }
+
+       @Override
+       public int getLocalPort() {
+               return httpExchange.getLocalAddress().getPort();
+       }
+
+       @Override
+       public String getRemoteAddr() {
+               return httpExchange.getRemoteAddress().getHostName();
+       }
+
+       @Override
+       public int getRemotePort() {
+               return httpExchange.getRemoteAddress().getPort();
+       }
+
+}
index a170507e5078d70c2fd5621a6ae638a33197a105..9d2c1930ae09e7cfd0f400553b5372054bca2508 100644 (file)
@@ -18,7 +18,7 @@ import org.argeo.api.acr.ContentRepository;
 import org.argeo.api.acr.ContentSession;
 import org.argeo.cms.auth.RemoteAuthUtils;
 import org.argeo.cms.http.HttpMethod;
-import org.argeo.cms.internal.http.RemoteAuthHttpExchange;
+import org.argeo.cms.http.RemoteAuthHttpExchange;
 
 import com.sun.net.httpserver.HttpContext;
 import com.sun.net.httpserver.HttpExchange;
index e17a089fe05e15db48924216a5f3f6c1f998b2c1..a66a7397ec790cb9ed96f693d19dbb62d860cfa9 100644 (file)
@@ -10,6 +10,7 @@ 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.cms.http.RemoteAuthHttpExchange;
 
 import com.sun.net.httpserver.Authenticator;
 import com.sun.net.httpserver.HttpExchange;
diff --git a/org.argeo.cms/src/org/argeo/cms/internal/http/RemoteAuthHttpExchange.java b/org.argeo.cms/src/org/argeo/cms/internal/http/RemoteAuthHttpExchange.java
deleted file mode 100644 (file)
index b7e670c..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-package org.argeo.cms.internal.http;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-import java.util.Objects;
-
-import org.argeo.cms.auth.RemoteAuthRequest;
-import org.argeo.cms.auth.RemoteAuthResponse;
-import org.argeo.cms.auth.RemoteAuthSession;
-
-import com.sun.net.httpserver.HttpExchange;
-
-public class RemoteAuthHttpExchange implements RemoteAuthRequest, RemoteAuthResponse {
-       private final HttpExchange httpExchange;
-       private RemoteAuthSession remoteAuthSession;
-
-       public RemoteAuthHttpExchange(HttpExchange httpExchange) {
-               this.httpExchange = httpExchange;
-               this.remoteAuthSession = (RemoteAuthSession) httpExchange.getAttribute(RemoteAuthSession.class.getName());
-               Objects.requireNonNull(this.remoteAuthSession);
-       }
-
-       @Override
-       public void setHeader(String headerName, String value) {
-               httpExchange.getResponseHeaders().put(headerName, Collections.singletonList(value));
-       }
-
-       @Override
-       public void addHeader(String headerName, String value) {
-               List<String> values = httpExchange.getResponseHeaders().getOrDefault(headerName, new ArrayList<>());
-               values.add(value);
-       }
-
-       @Override
-       public RemoteAuthSession getSession() {
-               return remoteAuthSession;
-       }
-
-       @Override
-       public RemoteAuthSession createSession() {
-               throw new UnsupportedOperationException("Cannot create remote session");
-       }
-
-       @Override
-       public Locale getLocale() {
-               // TODO Auto-generated method stub
-               return null;
-       }
-
-       @Override
-       public Object getAttribute(String key) {
-               return httpExchange.getAttribute(key);
-       }
-
-       @Override
-       public void setAttribute(String key, Object object) {
-               httpExchange.setAttribute(key, object);
-       }
-
-       @Override
-       public String getHeader(String key) {
-               List<String> lst = httpExchange.getRequestHeaders().get(key);
-               if (lst == null || lst.size() == 0)
-                       return null;
-               return lst.get(0);
-       }
-
-       @Override
-       public int getLocalPort() {
-               return httpExchange.getLocalAddress().getPort();
-       }
-
-       @Override
-       public String getRemoteAddr() {
-               return httpExchange.getRemoteAddress().getHostName();
-       }
-
-       @Override
-       public int getRemotePort() {
-               return httpExchange.getRemoteAddress().getPort();
-       }
-
-}
index c80933a559753203cac8e50ebc95b98afd79fd42..2847cb32f36594c098e4d866e4b5c863d4b45087 100644 (file)
@@ -26,7 +26,7 @@ import org.argeo.cms.dav.DavHttpHandler;
 import org.argeo.cms.dav.DavPropfind;
 import org.argeo.cms.dav.DavResponse;
 import org.argeo.cms.http.HttpStatus;
-import org.argeo.cms.internal.http.RemoteAuthHttpExchange;
+import org.argeo.cms.http.RemoteAuthHttpExchange;
 import org.argeo.cms.util.StreamUtils;
 
 import com.sun.net.httpserver.HttpExchange;