1 package org
.argeo
.cms
.internal
.http
;
3 import java
.util
.ArrayList
;
4 import java
.util
.Collections
;
6 import java
.util
.Locale
;
7 import java
.util
.Objects
;
9 import org
.argeo
.cms
.auth
.RemoteAuthRequest
;
10 import org
.argeo
.cms
.auth
.RemoteAuthResponse
;
11 import org
.argeo
.cms
.auth
.RemoteAuthSession
;
13 import com
.sun
.net
.httpserver
.HttpExchange
;
15 public class RemoteAuthHttpExchange
implements RemoteAuthRequest
, RemoteAuthResponse
{
16 private final HttpExchange httpExchange
;
17 private RemoteAuthSession remoteAuthSession
;
19 public RemoteAuthHttpExchange(HttpExchange httpExchange
) {
20 this.httpExchange
= httpExchange
;
21 this.remoteAuthSession
= (RemoteAuthSession
) httpExchange
.getAttribute(RemoteAuthSession
.class.getName());
22 Objects
.requireNonNull(this.remoteAuthSession
);
26 public void setHeader(String headerName
, String value
) {
27 httpExchange
.getResponseHeaders().put(headerName
, Collections
.singletonList(value
));
31 public void addHeader(String headerName
, String value
) {
32 List
<String
> values
= httpExchange
.getResponseHeaders().getOrDefault(headerName
, new ArrayList
<>());
37 public RemoteAuthSession
getSession() {
38 return remoteAuthSession
;
42 public RemoteAuthSession
createSession() {
43 throw new UnsupportedOperationException("Cannot create remote session");
47 public Locale
getLocale() {
48 // TODO Auto-generated method stub
53 public Object
getAttribute(String key
) {
54 return httpExchange
.getAttribute(key
);
58 public void setAttribute(String key
, Object object
) {
59 httpExchange
.setAttribute(key
, object
);
63 public String
getHeader(String key
) {
64 List
<String
> lst
= httpExchange
.getRequestHeaders().get(key
);
65 if (lst
== null || lst
.size() == 0)
71 public int getLocalPort() {
72 return httpExchange
.getLocalAddress().getPort();
76 public String
getRemoteAddr() {
77 return httpExchange
.getRemoteAddress().getHostName();
81 public int getRemotePort() {
82 return httpExchange
.getRemoteAddress().getPort();