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 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<String> 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