]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/http/RemoteAuthHttpExchange.java
Support writing file as XML
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / http / RemoteAuthHttpExchange.java
1 package org.argeo.cms.internal.http;
2
3 import java.util.Collections;
4 import java.util.List;
5 import java.util.Locale;
6 import java.util.Objects;
7
8 import org.argeo.cms.auth.RemoteAuthRequest;
9 import org.argeo.cms.auth.RemoteAuthResponse;
10 import org.argeo.cms.auth.RemoteAuthSession;
11
12 import com.sun.net.httpserver.HttpExchange;
13
14 public class RemoteAuthHttpExchange implements RemoteAuthRequest, RemoteAuthResponse {
15 private final HttpExchange httpExchange;
16 private RemoteAuthSession remoteAuthSession;
17
18 public RemoteAuthHttpExchange(HttpExchange httpExchange) {
19 this.httpExchange = httpExchange;
20 this.remoteAuthSession = (RemoteAuthSession) httpExchange.getAttribute(RemoteAuthSession.class.getName());
21 Objects.requireNonNull(this.remoteAuthSession);
22 }
23
24 @Override
25 public void setHeader(String keys, String value) {
26 httpExchange.getResponseHeaders().put(keys, Collections.singletonList(value));
27 }
28
29 @Override
30 public RemoteAuthSession getSession() {
31 return remoteAuthSession;
32 }
33
34 @Override
35 public RemoteAuthSession createSession() {
36 throw new UnsupportedOperationException("Cannot create remote session");
37 }
38
39 @Override
40 public Locale getLocale() {
41 // TODO Auto-generated method stub
42 return null;
43 }
44
45 @Override
46 public Object getAttribute(String key) {
47 return httpExchange.getAttribute(key);
48 }
49
50 @Override
51 public void setAttribute(String key, Object object) {
52 httpExchange.setAttribute(key, object);
53 }
54
55 @Override
56 public String getHeader(String key) {
57 List<String> lst = httpExchange.getRequestHeaders().get(key);
58 if (lst == null || lst.size() == 0)
59 return null;
60 return lst.get(0);
61 }
62
63 @Override
64 public int getLocalPort() {
65 return httpExchange.getLocalAddress().getPort();
66 }
67
68 @Override
69 public String getRemoteAddr() {
70 return httpExchange.getRemoteAddress().getHostName();
71 }
72
73 @Override
74 public int getRemotePort() {
75 return httpExchange.getRemoteAddress().getPort();
76 }
77
78 }