1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.acme;
20
21 import javax.servlet.DispatcherType;
22 import javax.servlet.ServletContextAttributeEvent;
23 import javax.servlet.ServletContextAttributeListener;
24 import javax.servlet.ServletContextEvent;
25 import javax.servlet.ServletContextListener;
26 import javax.servlet.ServletRequestAttributeEvent;
27 import javax.servlet.ServletRequestAttributeListener;
28 import javax.servlet.ServletRequestEvent;
29 import javax.servlet.ServletRequestListener;
30 import javax.servlet.ServletRegistration;
31 import javax.servlet.FilterRegistration;
32 import javax.servlet.ServletSecurityElement;
33 import javax.servlet.HttpConstraintElement;
34 import javax.servlet.HttpMethodConstraintElement;
35 import javax.servlet.annotation.ServletSecurity;
36 import javax.servlet.http.HttpServletRequest;
37 import javax.servlet.http.HttpSessionActivationListener;
38 import javax.servlet.http.HttpSessionAttributeListener;
39 import javax.servlet.http.HttpSessionBindingEvent;
40 import javax.servlet.http.HttpSessionEvent;
41 import javax.servlet.http.HttpSessionListener;
42
43 import java.util.EnumSet;
44 import java.util.Set;
45
46 public class TestListener implements HttpSessionListener, HttpSessionAttributeListener, HttpSessionActivationListener, ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener
47 {
48 public void attributeAdded(HttpSessionBindingEvent se)
49 {
50
51 }
52
53 public void attributeRemoved(HttpSessionBindingEvent se)
54 {
55
56 }
57
58 public void attributeReplaced(HttpSessionBindingEvent se)
59 {
60
61 }
62
63 public void sessionWillPassivate(HttpSessionEvent se)
64 {
65
66 }
67
68 public void sessionDidActivate(HttpSessionEvent se)
69 {
70
71 }
72
73 public void contextInitialized(ServletContextEvent sce)
74 {
75
76 ServletRegistration.Dynamic rego = sce.getServletContext().addServlet("RegoTest", RegTest.class.getName());
77 rego.addMapping("/rego/*");
78 HttpConstraintElement constraintElement = new HttpConstraintElement(ServletSecurity.EmptyRoleSemantic.PERMIT,
79 ServletSecurity.TransportGuarantee.NONE, new String[]{"admin"});
80 ServletSecurityElement securityElement = new ServletSecurityElement(constraintElement, null);
81 Set<String> unchanged = rego.setServletSecurity(securityElement);
82
83
84
85 ServletRegistration.Dynamic rego2 = sce.getServletContext().addServlet("RegoTest2", RegTest.class.getName());
86 rego2.addMapping("/rego2/*");
87 securityElement = new ServletSecurityElement(constraintElement, null);
88 unchanged = rego2.setServletSecurity(securityElement);
89
90
91
92 FilterRegistration.Dynamic registration = sce.getServletContext().addFilter("TestFilter",TestFilter.class.getName());
93 if (registration != null)
94 {
95 registration.setInitParameter("remote", "false");
96 registration.setAsyncSupported(true);
97 registration.addMappingForUrlPatterns(
98 EnumSet.of(DispatcherType.ERROR,DispatcherType.ASYNC,DispatcherType.FORWARD,DispatcherType.INCLUDE,DispatcherType.REQUEST),
99 true,
100 new String[]{"/*"});
101 }
102 }
103
104 public void contextDestroyed(ServletContextEvent sce)
105 {
106
107 }
108
109 public void attributeAdded(ServletContextAttributeEvent scab)
110 {
111
112 }
113
114 public void attributeRemoved(ServletContextAttributeEvent scab)
115 {
116
117 }
118
119 public void attributeReplaced(ServletContextAttributeEvent scab)
120 {
121
122 }
123
124 public void requestDestroyed(ServletRequestEvent sre)
125 {
126 ((HttpServletRequest)sre.getServletRequest()).getSession(false);
127 sre.getServletRequest().setAttribute("requestInitialized",null);
128
129 }
130
131 public void requestInitialized(ServletRequestEvent sre)
132 {
133 sre.getServletRequest().setAttribute("requestInitialized","'"+sre.getServletContext().getContextPath()+"'");
134
135 }
136
137 public void attributeAdded(ServletRequestAttributeEvent srae)
138 {
139
140 }
141
142 public void attributeRemoved(ServletRequestAttributeEvent srae)
143 {
144
145 }
146
147 public void attributeReplaced(ServletRequestAttributeEvent srae)
148 {
149
150 }
151
152 public void sessionCreated(HttpSessionEvent se)
153 {
154
155 }
156
157 public void sessionDestroyed(HttpSessionEvent se)
158 {
159
160 }
161
162 public void requestCompleted(ServletRequestEvent rre)
163 {
164
165
166 }
167
168 public void requestResumed(ServletRequestEvent rre)
169 {
170
171
172 }
173
174 public void requestSuspended(ServletRequestEvent rre)
175 {
176
177
178 }
179
180 }