X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fhttp%2FRemoteAuthHttpExchange.java;h=b7e670c7943899cb085a1601c0485ffd99c243ea;hb=e5f2dcdb553b5da76c7727af8aa24c83ed397d35;hp=68e0b1e3eada1cae69318cc03f2694c86346d6e6;hpb=81d9084e2c9fd9d33ca1d864171d28f9564647d8;p=lgpl%2Fargeo-commons.git 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 index 68e0b1e3e..b7e670c79 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/http/RemoteAuthHttpExchange.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/http/RemoteAuthHttpExchange.java @@ -1,8 +1,10 @@ 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; @@ -11,27 +13,34 @@ import org.argeo.cms.auth.RemoteAuthSession; import com.sun.net.httpserver.HttpExchange; public class RemoteAuthHttpExchange implements RemoteAuthRequest, RemoteAuthResponse { - private HttpExchange httpExchange; + 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 keys, String value) { - httpExchange.getResponseHeaders().put(keys, Collections.singletonList(value)); + public void setHeader(String headerName, String value) { + httpExchange.getResponseHeaders().put(headerName, Collections.singletonList(value)); + } + + @Override + public void addHeader(String headerName, String value) { + List values = httpExchange.getResponseHeaders().getOrDefault(headerName, new ArrayList<>()); + values.add(value); } @Override public RemoteAuthSession getSession() { - // TODO Auto-generated method stub - return null; + return remoteAuthSession; } @Override public RemoteAuthSession createSession() { - // TODO Auto-generated method stub - return null; + throw new UnsupportedOperationException("Cannot create remote session"); } @Override