Java Code Examples for org.jboss.netty.handler.codec.http.DefaultHttpRequest

The following examples show how to use org.jboss.netty.handler.codec.http.DefaultHttpRequest. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: feeyo-hlsserver   Source File: HlsTrafficFilter.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public boolean doFilter(ChannelHandlerContext ctx, MessageEvent e) {
    boolean isPassed = false;

    HttpRequest request = (DefaultHttpRequest) e.getMessage();
    String[] path = request.getUri().split("/");
    String requestFile = path[3];

    if (requestFile.endsWith(".ts")) {
        isPassed = true;
    } else {
    	isPassed = true;
    }
    return isPassed;
}
 
Example 2
Source Project: netty-file-parent   Source File: WrapFileClientHandler.java    License: Apache License 2.0 5 votes vote down vote up
public WrapFileClientHandler(String host, URI uri, String userName,
		String pwd) {
	this.host = host;
	this.uri = uri;
	this.userName = userName;
	this.pwd = pwd;
	this.request = new DefaultHttpRequest(HttpVersion.HTTP_1_1,
			HttpMethod.POST, uri.toASCIIString());
	setHeaderDatas();
}
 
Example 3
Source Project: elasticsearch-helper   Source File: HttpAction.java    License: Apache License 2.0 5 votes vote down vote up
protected HttpRequest newRequest(HttpMethod method, URL url, String path, ChannelBuffer buffer) {
    HttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, method, path);
    request.headers().add(HttpHeaders.Names.HOST, url.getHost());
    request.headers().add(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.CLOSE);
    request.headers().add(HttpHeaders.Names.ACCEPT_ENCODING, HttpHeaders.Values.GZIP);
    if (buffer != null) {
        request.setContent(buffer);
        int length = request.getContent().readableBytes();
        request.headers().add(HttpHeaders.Names.CONTENT_TYPE, "application/json");
        request.headers().add(HttpHeaders.Names.CONTENT_LENGTH, length);
    }
    return request;
}
 
Example 4
Source Project: feeyo-hlsserver   Source File: HlsVodHandler.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public void execute(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
	
    HttpRequest request = (DefaultHttpRequest) e.getMessage();
    if ( !request.getUri().matches(regex) ) {
        LOGGER.warn("bad request: " + request.getUri());
        HttpUtil.sendError(ctx, HttpResponseStatus.NOT_FOUND);
        return;
    }

    
    String[] path = request.getUri().split("/");
    String alias = path[3];
    final String reqFileName = path[4];
    
    Long streamId = HlsLiveStreamMagr.INSTANCE().getStreamIdByAlias(alias);
    if( streamId == null ) {
        LOGGER.warn(" aac vod, lookup alias failed: " + alias);
        HttpUtil.sendError(ctx, HttpResponseStatus.NOT_FOUND);
        return;
    }
    
    
    OssUtil ossOperation = new OssUtil();
    byte[] content = null;

    if (reqFileName.endsWith(".m3u8")) {
    	
        if ( !ossOperation.doesObjectExist(reqFileName, streamId) ) {
        	
            boolean needWaite = false;
            // the very first listener of a specific m3u8 will create the m3u8 file and the ts file
            // the reset will be in a waiter set
            synchronized (m3u8WaiteSet) {
                if (!m3u8WaiteSet.add(reqFileName)) {
                    needWaite = true;
                }
            }

            if (needWaite) {
                synchronized (m3u8WaiteSet) {
                    while (m3u8WaiteSet.contains(reqFileName)) {
                        m3u8WaiteSet.wait(1000);
                    }
                }
            } else {
                content = generateTsFiles(reqFileName, streamId);
            }
        }
    }

    if (content == null) {
        content = cachedVodTsFiles.get(reqFileName);
        if (content == null) {
            if (ossOperation.doesObjectExist(reqFileName, streamId)){
                InputStream inputStream = ossOperation.readObject(reqFileName, streamId);

                ObjectMetadata objectMetadata = ossOperation.getObjectMetadata(reqFileName,streamId);
                int len = (int)objectMetadata.getContentLength();
                content = new byte[len];

                int writePtr = 0;
                for (;;) {
                    int ret = inputStream.read(content, writePtr,len-writePtr);
                    if ((ret == -1) || (writePtr += ret) >= len)
                        break;
                }
            } else {
                LOGGER.warn("request file not on OSS: " + request.getUri());
                HttpUtil.sendError(ctx, HttpResponseStatus.NOT_FOUND);
                return;
            }
        }
    }

    ossOperation.closeOSSClient();

    long timeMillis = System.currentTimeMillis();

    DefaultHttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK);
    response.headers().set(HttpHeaders.Names.DATE, HttpUtil.getDateString(timeMillis));
    response.headers().set(HttpHeaders.Names.CONTENT_TYPE, HttpUtil.getMimeType(reqFileName));
    response.headers().set(HttpHeaders.Names.CONTENT_LENGTH, content.length);
    response.headers().set(HttpHeaders.Names.LAST_MODIFIED, HttpUtil.getDateString(timeMillis));
    response.headers().set(HttpHeaders.Names.EXPIRES, HttpUtil.getDateString(timeMillis + VOD_CACHE_TIME));
    response.headers().set(HttpHeaders.Names.CACHE_CONTROL, "max-age=" + (VOD_CACHE_TIME/1000));

    response.setContent(ChannelBuffers.copiedBuffer(content));

    e.getChannel().write(response);
}
 
Example 5
Source Project: feeyo-hlsserver   Source File: AuthCheckFilter.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public boolean doFilter(ChannelHandlerContext ctx, MessageEvent messageEvent) {
	
	boolean isPass = true;
	
	HttpRequest request = (DefaultHttpRequest) messageEvent.getMessage();
	String access_string = request.headers().get(Token.ACCESS_STRING);
	if ( access_string == null ) {
		// 解析 Cookie
		String value = request.headers().get( HttpHeaders.Names.COOKIE );
		Set<Cookie> cookies = ServerCookieDecoder.STRICT.decode(value != null ? value : "");

		Iterator<Cookie> it = cookies.iterator();
		while( it.hasNext() ) {
			Cookie c = it.next();
			if ( Token.ACCESS_STRING.equals( c.name() ) ) {
				access_string = c.value();
				break;
			}
		}
	}
	
	
	if (access_string != null) {
		try {
			Token token = TokenMagr.getInstance().getToken(access_string);
			if (token != null) {

				int now = (int) (System.currentTimeMillis() / 1000L);
				int expires = token.getCreateAt() + (token.getExpiresIn() * 60 * 60 * 24);
				if (expires < now) {
					TokenMagr.getInstance().deleteToken(access_string);
					isPass = false;
				}

			} else {
				isPass = false;
			}

		} catch (Exception e) {
			LOGGER.error("filter error  -- > " + request.getUri(), e);
		}

	} else {
		isPass = false;
	}

	return isPass;
	
	
}