1 package org
.argeo
.cms
.internal
.http
;
3 import java
.util
.Collections
;
5 import java
.util
.Locale
;
6 import java
.util
.Objects
;
8 import org
.argeo
.cms
.auth
.RemoteAuthRequest
;
9 import org
.argeo
.cms
.auth
.RemoteAuthResponse
;
10 import org
.argeo
.cms
.auth
.RemoteAuthSession
;
12 import com
.sun
.net
.httpserver
.HttpExchange
;
14 public class RemoteAuthHttpExchange
implements RemoteAuthRequest
, RemoteAuthResponse
{
15 private final HttpExchange httpExchange
;
16 private RemoteAuthSession remoteAuthSession
;
18 public RemoteAuthHttpExchange(HttpExchange httpExchange
) {
19 this.httpExchange
= httpExchange
;
20 this.remoteAuthSession
= (RemoteAuthSession
) httpExchange
.getAttribute(RemoteAuthSession
.class.getName());
21 Objects
.requireNonNull(this.remoteAuthSession
);
25 public void setHeader(String keys
, String value
) {
26 httpExchange
.getResponseHeaders().put(keys
, Collections
.singletonList(value
));
30 public RemoteAuthSession
getSession() {
31 return remoteAuthSession
;
35 public RemoteAuthSession
createSession() {
36 throw new UnsupportedOperationException("Cannot create remote session");
40 public Locale
getLocale() {
41 // TODO Auto-generated method stub
46 public Object
getAttribute(String key
) {
47 return httpExchange
.getAttribute(key
);
51 public void setAttribute(String key
, Object object
) {
52 httpExchange
.setAttribute(key
, object
);
56 public String
getHeader(String key
) {
57 List
<String
> lst
= httpExchange
.getRequestHeaders().get(key
);
58 if (lst
== null || lst
.size() == 0)
64 public int getLocalPort() {
65 return httpExchange
.getLocalAddress().getPort();
69 public String
getRemoteAddr() {
70 return httpExchange
.getRemoteAddress().getHostName();
74 public int getRemotePort() {
75 return httpExchange
.getRemoteAddress().getPort();