43
43
import jakarta .websocket .ContainerProvider ;
44
44
import jakarta .websocket .Endpoint ;
45
45
import jakarta .websocket .EndpointConfig ;
46
- import jakarta .websocket .MessageHandler ;
47
46
import jakarta .websocket .OnOpen ;
48
47
import jakarta .websocket .Session ;
49
48
import jakarta .websocket .server .ServerEndpoint ;
@@ -147,12 +146,7 @@ public static void cleanup() throws ServletException {
147
146
@ Test
148
147
public void testAuthenticatedWebsocket () throws Exception {
149
148
ProgramaticClientEndpoint endpoint = new ProgramaticClientEndpoint ();
150
- ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig .Builder .create ().configurator (new ClientConfigurator (){
151
- @ Override
152
- public void beforeRequest (Map <String , List <String >> headers ) {
153
- headers .put (AUTHORIZATION .toString (), Collections .singletonList (BASIC + " " + FlexBase64 .encodeString ("user1:password1" .getBytes (), false )));
154
- }
155
- }).build ();
149
+ ClientEndpointConfig clientEndpointConfig = ClientEndpointConfig .Builder .create ().configurator (new CustomClientConfigurator ()).build ();
156
150
ContainerProvider .getWebSocketContainer ().connectToServer (endpoint , clientEndpointConfig , new URI ("ws://" + DefaultServer .getHostAddress ("default" ) + ":" + DefaultServer .getHostPort ("default" ) + "/servletContext/secured" ));
157
151
assertEquals ("user1" , endpoint .getResponses ().poll (15 , TimeUnit .SECONDS ));
158
152
endpoint .session .close ();
@@ -179,13 +173,7 @@ public static class ProgramaticClientEndpoint extends Endpoint {
179
173
@ Override
180
174
public void onOpen (Session session , EndpointConfig config ) {
181
175
this .session = session ;
182
- session .addMessageHandler (new MessageHandler .Whole <String >() {
183
-
184
- @ Override
185
- public void onMessage (String message ) {
186
- responses .add (message );
187
- }
188
- });
176
+ session .addMessageHandler (String .class , (message ) -> responses .add (message ));
189
177
}
190
178
191
179
@ Override
@@ -217,12 +205,7 @@ public void init(FilterConfig filterConfig) {
217
205
218
206
@ Override
219
207
public void doFilter (ServletRequest servletRequest , ServletResponse servletResponse , FilterChain filterChain ) throws IOException , ServletException {
220
- filterChain .doFilter (new HttpServletRequestWrapper ((HttpServletRequest ) servletRequest ) {
221
- @ Override
222
- public Principal getUserPrincipal () {
223
- return () -> "wrapped" ;
224
- }
225
- }, servletResponse );
208
+ filterChain .doFilter (new ServletRequestWrapper ((HttpServletRequest ) servletRequest ), servletResponse );
226
209
}
227
210
228
211
@ Override
@@ -231,4 +214,23 @@ public void destroy() {
231
214
}
232
215
}
233
216
217
+ private static class ServletRequestWrapper extends HttpServletRequestWrapper {
218
+
219
+ ServletRequestWrapper (HttpServletRequest request ) {
220
+ super (request );
221
+ }
222
+
223
+ @ Override
224
+ public Principal getUserPrincipal () {
225
+ return () -> "wrapped" ;
226
+ }
227
+ }
228
+
229
+ private static class CustomClientConfigurator extends ClientConfigurator {
230
+
231
+ @ Override
232
+ public void beforeRequest (Map <String , List <String >> headers ) {
233
+ headers .put (AUTHORIZATION .toString (), Collections .singletonList (BASIC + " " + FlexBase64 .encodeString ("user1:password1" .getBytes (), false )));
234
+ }
235
+ }
234
236
}
0 commit comments