Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2020
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.59 KB | None | 0 0
  1. public static class MyHandler extends AbstractHandshakeHandler {
  2.         public MyHandler() {
  3.             super(new AbstractStandardUpgradeStrategy() {
  4.                 @Override
  5.                 public String[] getSupportedVersions() {
  6.                     return new String[] {"13"};//copied from the tomcat strategy
  7.                 }
  8.  
  9.                 @Override
  10.                 protected void upgradeInternal(ServerHttpRequest request, ServerHttpResponse response, String selectedProtocol, List<Extension> selectedExtensions, Endpoint endpoint) throws HandshakeFailureException {
  11.                     var r = getHttpServletResponse(response);
  12.                     r.setStatus(HttpStatus.I_AM_A_TEAPOT.value());  // this works
  13.                     r.addHeader("Content-Type", "application/json");
  14.                     var d = "{error: \"error\"}".getBytes();
  15.                     r.addIntHeader("Content-Length", d.length);  // this doesn't work
  16.                     try {
  17.                         r.getOutputStream().write(d);  // this doesn't work
  18.                         r.flushBuffer();
  19.                     } catch (IOException e) {
  20.                         log.error("Error writing body", e);
  21.                     }
  22.                 }
  23.             });
  24.         }
  25.     }
  26.  
  27.     @Override
  28.     public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
  29.         registry.addHandler(new ExceptionWebSocketHandlerDecorator(myWebSocketHandler), "/ws/")
  30.                 .setAllowedOrigins("*")
  31.                 .addInterceptors(myHandshakeInterceptor)
  32.         .setHandshakeHandler(new MyHandler());
  33.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement