Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2013 Red Hat, Inc., and individual contributors
   * as indicated by the @author tags.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package io.undertow.servlet.websockets;
 
 import org.xnio.Pool;
 
 import java.util.List;
 import java.util.Map;

Author(s):
Stuart Douglas
 
 public class ServletWebSocketHttpExchange implements WebSocketHttpExchange {
 
     private final HttpServletRequest request;
     private final HttpServletResponse response;
     private final HttpServerExchange exchange;
 
     public ServletWebSocketHttpExchange(final HttpServletRequest requestfinal HttpServletResponse response) {
         this. = request;
         this. = response;
         this. = SecurityActions.requireCurrentServletRequestContext().getOriginalRequest().getExchange();
     }
 
 
     @Override
     public <T> void putAttachment(final AttachmentKey<T> keyfinal T value) {
         .putAttachment(keyvalue);
     }
 
     @Override
     public <T> T getAttachment(final AttachmentKey<T> key) {
         return .getAttachment(key);
     }
 
     @Override
     public String getRequestHeader(final String headerName) {
         return .getHeader(headerName);
     }
 
     @Override
     public Map<StringList<String>> getRequestHeaders() {
         Map<StringList<String>> headers = new HashMap<StringList<String>>();
         final Enumeration<StringheaderNames = .getHeaderNames();
         while (headerNames.hasMoreElements()) {
             String header = headerNames.nextElement();
             final Enumeration<StringtheHeaders = .getHeaders(header);
             final List<Stringvals = new ArrayList<String>();
             headers.put(headervals);
             while (theHeaders.hasMoreElements()) {
                 vals.add(theHeaders.nextElement());
             }
 
         }
         return Collections.unmodifiableMap(headers);
     }
 
     @Override
     public String getResponseHeader(final String headerName) {
         return .getHeader(headerName);
     }
    @Override
    public Map<StringList<String>> getResponseHeaders() {
        Map<StringList<String>> headers = new HashMap<StringList<String>>();
        final Collection<StringheaderNames = .getHeaderNames();
        for (String header : headerNames) {
            headers.put(headernew ArrayList<String>(.getHeaders(header)));
        }
        return Collections.unmodifiableMap(headers);
    }
    @Override
    public void setResponseHeaders(final Map<StringList<String>> headers) {
        for (String header : .getHeaderNames()) {
            .setHeader(headernull);
        }
        for (Map.Entry<StringList<String>> entry : headers.entrySet()) {
            for (String val : entry.getValue()) {
                .addHeader(entry.getKey(), val);
            }
        }
    }
    @Override
    public void setResponseHeader(final String headerNamefinal String headerValue) {
        .setHeader(headerNameheaderValue);
    }
    @Override
    public void upgradeChannel(final HttpUpgradeListener upgradeCallback) {
        .upgradeChannel(upgradeCallback);
    }
    @Override
    public IoFuture<VoidsendData(final ByteBuffer data) {
        try {
            final ServletOutputStream outputStream = .getOutputStream();
            while (data.hasRemaining()) {
                outputStream.write(data.get());
            }
            return new FinishedIoFuture<Void>(null);
        } catch (IOException e) {
            final FutureResult<VoidioFuture = new FutureResult<Void>();
            ioFuture.setException(e);
            return ioFuture.getIoFuture();
        }
    }
    @Override
    public IoFuture<byte[]> readRequestData() {
        final ByteArrayOutputStream data = new ByteArrayOutputStream();
        try {
            final ServletInputStream in = .getInputStream();
            byte[] buf = new byte[1024];
            int r;
            while ((r = in.read(buf)) != -1) {
                data.write(buf, 0, r);
            }
            return new FinishedIoFuture<byte[]>(data.toByteArray());
        } catch (IOException e) {
            final FutureResult<byte[]> ioFuture = new FutureResult<byte[]>();
            ioFuture.setException(e);
            return ioFuture.getIoFuture();
        }
    }
    @Override
    public void endExchange() {
        //noop
    }
    @Override
    public void close() {
        IoUtils.safeClose(.getConnection());
    }
    @Override
    public String getRequestScheme() {
        return .getScheme();
    }
    @Override
    public String getRequestURI() {
        return .getRequestURI() + (.getQueryString() == null ? "" : "?" + .getQueryString());
    }
    @Override
    public Pool<ByteBuffergetBufferPool() {
        return .getConnection().getBufferPool();
    }
    @Override
    public String getQueryString() {
        return .getQueryString();
    }
    @Override
    public Object getSession() {
        return .getSession(false);
    }
    @Override
    public Map<StringList<String>> getRequestParameters() {
        Map<StringList<String>> params = new HashMap<StringList<String>>();
        for(Map.Entry<StringString[]> param : .getParameterMap().entrySet()) {
            params.put(param.getKey(), new ArrayList<String>(Arrays.asList(param.getValue())));
        }
        return params;
    }
    @Override
    public Principal getUserPrincipal() {
        return .getUserPrincipal();
    }
    @Override
    public boolean isUserInRole(String role) {
        return .isUserInRole(role);
    }
New to GrepCode? Check out our FAQ X