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 System.err.println("Security constraints registered: "+unchanged.isEmpty());
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 System.err.println("Overridding web.xml constraints not possible:" +!unchanged.isEmpty());
90
91
92 FilterRegistration.Dynamic registration = sce.getServletContext().addFilter("TestFilter",TestFilter.class.getName());
93 registration.setInitParameter("remote", "false");
94 registration.setAsyncSupported(true);
95 registration.addMappingForUrlPatterns(
96 EnumSet.of(DispatcherType.ERROR,DispatcherType.ASYNC,DispatcherType.FORWARD,DispatcherType.INCLUDE,DispatcherType.REQUEST),
97 true,
98 new String[]{"/*"});
99 }
100
101 public void contextDestroyed(ServletContextEvent sce)
102 {
103
104 }
105
106 public void attributeAdded(ServletContextAttributeEvent scab)
107 {
108
109 }
110
111 public void attributeRemoved(ServletContextAttributeEvent scab)
112 {
113
114 }
115
116 public void attributeReplaced(ServletContextAttributeEvent scab)
117 {
118
119 }
120
121 public void requestDestroyed(ServletRequestEvent sre)
122 {
123 ((HttpServletRequest)sre.getServletRequest()).getSession(false);
124 sre.getServletRequest().setAttribute("requestInitialized",null);
125
126 }
127
128 public void requestInitialized(ServletRequestEvent sre)
129 {
130 sre.getServletRequest().setAttribute("requestInitialized","'"+sre.getServletContext().getContextPath()+"'");
131
132 }
133
134 public void attributeAdded(ServletRequestAttributeEvent srae)
135 {
136
137 }
138
139 public void attributeRemoved(ServletRequestAttributeEvent srae)
140 {
141
142 }
143
144 public void attributeReplaced(ServletRequestAttributeEvent srae)
145 {
146
147 }
148
149 public void sessionCreated(HttpSessionEvent se)
150 {
151
152 }
153
154 public void sessionDestroyed(HttpSessionEvent se)
155 {
156
157 }
158
159 public void requestCompleted(ServletRequestEvent rre)
160 {
161
162
163 }
164
165 public void requestResumed(ServletRequestEvent rre)
166 {
167
168
169 }
170
171 public void requestSuspended(ServletRequestEvent rre)
172 {
173
174
175 }
176
177 }