/** * Return the servlet response for which this event occurred. */ public ServletResponse getResponse() { if (event != null) { return this.event.getHttpServletResponse(); } else { return (this.response); } }
public static boolean isValid(HttpEvent event) { if (event != null) { try { return event.getHttpServletRequest() != null && event.getHttpServletResponse() != null; } catch (Exception e) { } } return false; }
/** * Generic function to send either a ping or a pong. * * @param data Optional message. * @param opcode The byte to include as the opcode. * * @throws IOException If an error occurs writing to the client */ private synchronized void sendControlMessage(ByteBuffer data, byte opcode) throws IOException { if (closed) { throw new IOException(MESSAGES.outboundClosed()); } doFlush(false); ServletOutputStream os = event.getHttpServletResponse().getOutputStream(); os.write(0x80 | opcode); if (data == null) { os.write(0); } else { os.write(data.limit() - data.position()); os.write(data.array(), data.position(), data.limit() - data.position()); } os.flush(); }
/** * Hack to support JBossWeb AIO like other WebServer. This method is invoked * by Tomcat when it detect a {@link Servlet} implements the interface * {@link HttpEventServlet} without invoking {@link Servlet#service} * * @param httpEvent the {@link CometEvent} * @throws java.io.IOException * @throws javax.servlet.ServletException */ public void event(HttpEvent httpEvent) throws IOException, ServletException { HttpServletRequest req = httpEvent.getHttpServletRequest(); HttpServletResponse res = httpEvent.getHttpServletResponse(); req.setAttribute(JBossWebCometSupport.HTTP_EVENT, httpEvent); cometSupport.service(req, res); }
ServletOutputStream os = event.getHttpServletResponse().getOutputStream(); os.write(0x88); if (status == 0) {
ServletOutputStream os = event.getHttpServletResponse().getOutputStream();
/** * Perform the filtering that has been configured for this Filter, matching * against the specified request property. * * @param property The property to check against the allow/deny rules * @param event The comet event to be filtered * @param chain The comet filter chain * @exception IOException if an input/output error occurs * @exception ServletException if a servlet error occurs */ protected void processCometEvent(String property, HttpEvent event, HttpEventFilterChain chain) throws IOException, ServletException { HttpServletResponse response = event.getHttpServletResponse(); if (isAllowed(property)) { chain.doFilterEvent(event); } else { response.sendError(HttpServletResponse.SC_FORBIDDEN); event.close(); } }
/** * Perform the filtering that has been configured for this Filter, matching * against the specified request property. * * @param property The property to check against the allow/deny rules * @param event The comet event to be filtered * @param chain The comet filter chain * @exception IOException if an input/output error occurs * @exception ServletException if a servlet error occurs */ protected void processCometEvent(String property, HttpEvent event, HttpEventFilterChain chain) throws IOException, ServletException { HttpServletResponse response = event.getHttpServletResponse(); if (isAllowed(property)) { chain.doFilterEvent(event); } else { response.sendError(HttpServletResponse.SC_FORBIDDEN); event.close(); } }
if (!event.getHttpServletResponse().isCommitted()) event.getHttpServletResponse().setContentType("text/json-comment-filtered"); }else { if (!event.getHttpServletResponse().isCommitted()) event.getHttpServletResponse().setContentType("text/json"); PrintWriter out = event.getHttpServletResponse().getWriter(); if (to==null) {
if (!event.getHttpServletResponse().isCommitted()) event.getHttpServletResponse().setContentType("text/json-comment-filtered"); }else { if (!event.getHttpServletResponse().isCommitted()) event.getHttpServletResponse().setContentType("text/json"); PrintWriter out = event.getHttpServletResponse().getWriter(); if (to==null) {
@Override public byte[] generateResponse(HttpEvent event) throws IOException { final HttpServletRequest request = event.getHttpServletRequest(); final HttpServletResponse response = event.getHttpServletResponse(); if (WebSocketHeaders.ORIGIN.isIn(request)) { WebSocketHeaders.SEC_WEBSOCKET_ORIGIN.set(response, WebSocketHeaders.ORIGIN.get(request).trim()); } final String origin = "ws://" + request.getHeader("Host") + request.getRequestURI(); WebSocketHeaders.SEC_WEBSOCKET_LOCATION.set(response, origin); WebSocketHeaders.SEC_WEBSOCKET_PROTOCOL.copy(request, response); // Calculate the answer of the challenge. final String key1 = SEC_WEBSOCKET_KEY1.get(request); final String key2 = SEC_WEBSOCKET_KEY2.get(request); final byte[] key3 = new byte[8]; final InputStream inputStream = request.getInputStream(); inputStream.read(key3); final byte[] solution = solve(getHashAlgorithm(), key1, key2, key3); return solution; }
final HttpServletResponse response = event.getHttpServletResponse(); event.getHttpServletResponse().getOutputStream().write(handShakeData); = handshake.getWebSocket(event.getHttpServletRequest(), event.getHttpServletResponse(), new ClosingStrategy() { public void doClose() throws IOException{
private void beginEvent(HttpEvent cometEvent) throws IOException, ServletException { HttpServletRequest request = cometEvent.getHttpServletRequest(); HttpServletResponse response = cometEvent.getHttpServletResponse();
public void event(HttpEvent event) throws IOException, ServletException { HttpServletResponse resp = event.getHttpServletResponse(); switch (event.getType()) { case BEGIN:
@Override public byte[] generateResponse(HttpEvent event) throws IOException { final HttpServletRequest request = event.getHttpServletRequest(); final HttpServletResponse response = event.getHttpServletResponse(); ORIGIN.copy(request, response); SEC_WEBSOCKET_PROTOCOL.copy(request, response); SEC_WEBSOCKET_LOCATION.set(response, getWebSocketLocation(request)); final String key = SEC_WEBSOCKET_KEY.get(request); final String solution = solve(key); WebSocketHeaders.SEC_WEBSOCKET_ACCEPT.set(response, solution); return new byte[0]; } }
final HttpServletResponse response = event.getHttpServletResponse();
@Override public byte[] generateResponse(HttpEvent event) throws IOException { final HttpServletRequest request = event.getHttpServletRequest(); final HttpServletResponse response = event.getHttpServletResponse(); if (ORIGIN.isIn(request)) { SEC_WEBSOCKET_ORIGIN.set(response, ORIGIN.get(request)); } SEC_WEBSOCKET_PROTOCOL.copy(request, response); SEC_WEBSOCKET_LOCATION.set(response, getWebSocketLocation(request)); final String key = SEC_WEBSOCKET_KEY.get(request); final String solution = solve(key); WebSocketHeaders.SEC_WEBSOCKET_ACCEPT.set(response, solution); return new byte[0]; }
HttpServletResponse response = event.getHttpServletResponse();
try { request = event.getHttpServletRequest(); response = event.getHttpServletResponse(); } catch (Exception e) { log.warn(e, "Illegal event: %s", EventUtil.toString(event));
public void event(HttpEvent event) throws IOException, ServletException { // make sure we've got a valid CometEvent (should never happen) if (!EventUtil.isValid(event)) { log.error("JBossWeb sent an invalid HttpEvent: %s", event.getType()); return; } if (log.isDebugEnabled()) { log.debug( "%s: %s/%s", event.getType(), event.getHttpServletRequest(), event.getHttpServletResponse() ); } if (event.getType() == HttpEvent.EventType.BEGIN) begin(event); else if (event.getType() == HttpEvent.EventType.READ) read(event); else if (event.getType() == HttpEvent.EventType.END) end(event); else if (event.getType() == HttpEvent.EventType.ERROR || event.getType() == HttpEvent.EventType.EOF || event.getType() == HttpEvent.EventType.TIMEOUT) error(event); else throw new ServletException("Unknown HttpEvent type: " + event.getType()); }