]> git.argeo.org Git - lgpl/argeo-commons.git/blob - ServletHttpRequest.java
523f7b75786bbdd6b3397818745cb3672458ac21
[lgpl/argeo-commons.git] / ServletHttpRequest.java
1 package org.argeo.cms.servlet;
2
3 import java.util.Locale;
4 import java.util.Objects;
5
6 import javax.servlet.http.HttpServletRequest;
7
8 import org.argeo.cms.auth.HttpRequest;
9 import org.argeo.cms.auth.HttpSession;
10
11 public class ServletHttpRequest implements HttpRequest {
12 private final HttpServletRequest request;
13
14 public ServletHttpRequest(HttpServletRequest request) {
15 Objects.requireNonNull(request);
16 this.request = request;
17 }
18
19 @Override
20 public HttpSession getSession() {
21 return new ServletHttpSession();
22 }
23
24 @Override
25 public HttpSession createSession() {
26 request.getSession(true);
27 return new ServletHttpSession();
28 }
29
30 @Override
31 public Locale getLocale() {
32 return request.getLocale();
33 }
34
35 @Override
36 public Object getAttribute(String key) {
37 return request.getAttribute(key);
38 }
39
40 @Override
41 public void setAttribute(String key, Object object) {
42 request.setAttribute(key, object);
43 }
44
45 @Override
46 public String getHeader(String key) {
47 return request.getHeader(key);
48 }
49
50 @Override
51 public String getRemoteAddr() {
52 return request.getRemoteAddr();
53 }
54
55 @Override
56 public int getLocalPort() {
57 return request.getLocalPort();
58 }
59
60 @Override
61 public int getRemotePort() {
62 return request.getRemotePort();
63 }
64
65 private class ServletHttpSession implements HttpSession {
66
67 @Override
68 public boolean isValid() {
69 try {// test http session
70 request.getSession(false).getCreationTime();
71 return true;
72 } catch (IllegalStateException ise) {
73 return false;
74 }
75 }
76
77 @Override
78 public String getId() {
79 return request.getSession(false).getId();
80 }
81
82 }
83 }