1 package org
.argeo
.cms
.websocket
.server
;
3 import java
.util
.HashMap
;
5 import java
.util
.Locale
;
7 import java
.util
.Objects
;
9 import javax
.servlet
.http
.HttpSession
;
10 import javax
.websocket
.server
.HandshakeRequest
;
12 import org
.argeo
.cms
.auth
.RemoteAuthRequest
;
13 import org
.argeo
.cms
.auth
.RemoteAuthSession
;
14 import org
.argeo
.cms
.servlet
.ServletHttpSession
;
16 public class WebSocketHandshakeRequest
implements RemoteAuthRequest
{
17 private final HandshakeRequest handshakeRequest
;
18 private final HttpSession httpSession
;
20 private Map
<String
, Object
> attributes
= new HashMap
<>();
22 public WebSocketHandshakeRequest(HandshakeRequest handshakeRequest
) {
23 Objects
.requireNonNull(handshakeRequest
);
24 this.handshakeRequest
= handshakeRequest
;
25 this.httpSession
= (HttpSession
) handshakeRequest
.getHttpSession();
26 // Objects.requireNonNull(this.httpSession);
30 public RemoteAuthSession
getSession() {
31 if (httpSession
== null)
33 return new ServletHttpSession(httpSession
);
37 public RemoteAuthSession
createSession() {
38 throw new UnsupportedOperationException();
42 public Locale
getLocale() {
43 // TODO check Accept-Language header
44 return Locale
.getDefault();
48 public Object
getAttribute(String key
) {
49 return attributes
.get(key
);
53 public void setAttribute(String key
, Object object
) {
54 attributes
.put(key
, object
);
58 public String
getHeader(String key
) {
59 List
<String
> values
= handshakeRequest
.getHeaders().get(key
);
60 if (values
.size() == 0)
62 if (values
.size() > 1)
63 throw new IllegalStateException("More that one value for " + key
+ ": " + values
);
68 public String
getRemoteAddr() {
69 throw new UnsupportedOperationException();
73 public int getLocalPort() {
74 throw new UnsupportedOperationException();
78 public int getRemotePort() {
79 throw new UnsupportedOperationException();