本文整理了Java中com.netflix.zuul.netty.filter.ZuulFilterChainHandler
类的一些代码示例,展示了ZuulFilterChainHandler
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZuulFilterChainHandler
类的具体详情如下:
包路径:com.netflix.zuul.netty.filter.ZuulFilterChainHandler
类名称:ZuulFilterChainHandler
[英]Created by saroskar on 5/18/17.
[中]萨罗斯卡于2017年5月18日创作。
代码示例来源:origin: Netflix/zuul
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
LOG.error("zuul filter chain handler caught exception. cause=" + String.valueOf(cause), cause);
if (zuulRequest != null && !isClientChannelClosed(cause)) {
final SessionContext zuulCtx = zuulRequest.getContext();
zuulCtx.setError(cause);
zuulCtx.setShouldSendErrorResponse(true);
sendResponse(FAILURE_LOCAL, 500, ctx);
} else {
fireEndpointFinish(true);
ctx.close();
}
}
代码示例来源:origin: Netflix/zuul
@Override
public final void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof CompleteEvent) {
final CompleteEvent completeEvent = (CompleteEvent)evt;
fireEndpointFinish(completeEvent.getReason() != SESSION_COMPLETE);
}
else if (evt instanceof HttpRequestReadTimeoutEvent) {
sendResponse(FAILURE_CLIENT_TIMEOUT, 408, ctx);
}
else if (evt instanceof IdleStateEvent) {
sendResponse(FAILURE_LOCAL_IDLE_TIMEOUT, 504, ctx);
}
else if (evt instanceof RequestCancelledEvent) {
if (zuulRequest != null) {
StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulRequest.getContext(), FAILURE_CLIENT_CANCELLED);
}
fireEndpointFinish(true);
ctx.close();
}
else if (evt instanceof HttpLifecycleChannelHandler.RejectedPipeliningEvent) {
sendResponse(FAILURE_CLIENT_PIPELINE_REJECT, 400, ctx);
}
super.userEventTriggered(ctx, evt);
}
代码示例来源:origin: Netflix/zuul
private void sendResponse(final StatusCategory statusCategory, final int status, ChannelHandlerContext ctx) {
if (zuulRequest == null) {
ctx.close();
}
else {
final SessionContext zuulCtx = zuulRequest.getContext();
StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory);
final HttpResponseMessage zuulResponse = new HttpResponseMessageImpl(zuulCtx, zuulRequest, status);
final Headers headers = zuulResponse.getHeaders();
headers.add("Connection", "close");
headers.add("Content-Length", "0");
zuulResponse.finishBufferedBodyIfIncomplete();
responseFilterChain.filter(zuulResponse);
fireEndpointFinish(true);
}
}
代码示例来源:origin: Netflix/zuul
protected void addZuulFilterChainHandler(final ChannelPipeline pipeline) {
final ZuulFilter<HttpResponseMessage, HttpResponseMessage>[] responseFilters = getFilters(
new OutboundPassportStampingFilter(FILTERS_OUTBOUND_START),
new OutboundPassportStampingFilter(FILTERS_OUTBOUND_END));
// response filter chain
final ZuulFilterChainRunner<HttpResponseMessage> responseFilterChain = getFilterChainRunner(responseFilters,
filterUsageNotifier);
// endpoint | response filter chain
final FilterRunner<HttpRequestMessage, HttpResponseMessage> endPoint = getEndpointRunner(responseFilterChain,
filterUsageNotifier, filterLoader);
final ZuulFilter<HttpRequestMessage, HttpRequestMessage>[] requestFilters = getFilters(
new InboundPassportStampingFilter(FILTERS_INBOUND_START),
new InboundPassportStampingFilter(FILTERS_INBOUND_END));
// request filter chain | end point | response filter chain
final ZuulFilterChainRunner<HttpRequestMessage> requestFilterChain = getFilterChainRunner(requestFilters,
filterUsageNotifier, endPoint);
pipeline.addLast(new ZuulFilterChainHandler(requestFilterChain, responseFilterChain));
}
代码示例来源:origin: Netflix/zuul
@Override
public final void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof CompleteEvent) {
final CompleteEvent completeEvent = (CompleteEvent)evt;
fireEndpointFinish(completeEvent.getReason() != SESSION_COMPLETE);
}
else if (evt instanceof HttpRequestReadTimeoutEvent) {
sendResponse(FAILURE_CLIENT_TIMEOUT, 408, ctx);
}
else if (evt instanceof IdleStateEvent) {
sendResponse(FAILURE_LOCAL_IDLE_TIMEOUT, 504, ctx);
}
else if (evt instanceof RequestCancelledEvent) {
if (zuulRequest != null) {
StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulRequest.getContext(), FAILURE_CLIENT_CANCELLED);
}
fireEndpointFinish(true);
ctx.close();
}
else if (evt instanceof HttpLifecycleChannelHandler.RejectedPipeliningEvent) {
sendResponse(FAILURE_CLIENT_PIPELINE_REJECT, 400, ctx);
}
super.userEventTriggered(ctx, evt);
}
代码示例来源:origin: Netflix/zuul
private void sendResponse(final StatusCategory statusCategory, final int status, ChannelHandlerContext ctx) {
if (zuulRequest == null) {
ctx.close();
}
else {
final SessionContext zuulCtx = zuulRequest.getContext();
StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory);
final HttpResponseMessage zuulResponse = new HttpResponseMessageImpl(zuulCtx, zuulRequest, status);
final Headers headers = zuulResponse.getHeaders();
headers.add("Connection", "close");
headers.add("Content-Length", "0");
zuulResponse.finishBufferedBodyIfIncomplete();
responseFilterChain.filter(zuulResponse);
fireEndpointFinish(true);
}
}
代码示例来源:origin: Netflix/zuul
protected void addZuulFilterChainHandler(final ChannelPipeline pipeline) {
final ZuulFilter<HttpResponseMessage, HttpResponseMessage>[] responseFilters = getFilters(
new OutboundPassportStampingFilter(FILTERS_OUTBOUND_START),
new OutboundPassportStampingFilter(FILTERS_OUTBOUND_END));
// response filter chain
final ZuulFilterChainRunner<HttpResponseMessage> responseFilterChain = getFilterChainRunner(responseFilters,
filterUsageNotifier);
// endpoint | response filter chain
final FilterRunner<HttpRequestMessage, HttpResponseMessage> endPoint = getEndpointRunner(responseFilterChain,
filterUsageNotifier, filterLoader);
final ZuulFilter<HttpRequestMessage, HttpRequestMessage>[] requestFilters = getFilters(
new InboundPassportStampingFilter(FILTERS_INBOUND_START),
new InboundPassportStampingFilter(FILTERS_INBOUND_END));
// request filter chain | end point | response filter chain
final ZuulFilterChainRunner<HttpRequestMessage> requestFilterChain = getFilterChainRunner(requestFilters,
filterUsageNotifier, endPoint);
pipeline.addLast(new ZuulFilterChainHandler(requestFilterChain, responseFilterChain));
}
代码示例来源:origin: Netflix/zuul
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
LOG.error("zuul filter chain handler caught exception. cause=" + String.valueOf(cause), cause);
if (zuulRequest != null && !isClientChannelClosed(cause)) {
final SessionContext zuulCtx = zuulRequest.getContext();
zuulCtx.setError(cause);
zuulCtx.setShouldSendErrorResponse(true);
sendResponse(FAILURE_LOCAL, 500, ctx);
} else {
fireEndpointFinish(true);
ctx.close();
}
}
代码示例来源:origin: com.netflix.zuul/zuul-core
@Override
public final void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
if (evt instanceof CompleteEvent) {
final CompleteEvent completeEvent = (CompleteEvent)evt;
fireEndpointFinish(completeEvent.getReason() != SESSION_COMPLETE);
}
else if (evt instanceof HttpRequestReadTimeoutEvent) {
sendResponse(FAILURE_CLIENT_TIMEOUT, 408, ctx);
}
else if (evt instanceof IdleStateEvent) {
sendResponse(FAILURE_LOCAL_IDLE_TIMEOUT, 504, ctx);
}
else if (evt instanceof RequestCancelledEvent) {
if (zuulRequest != null) {
StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulRequest.getContext(), FAILURE_CLIENT_CANCELLED);
}
fireEndpointFinish(true);
ctx.close();
}
else if (evt instanceof HttpLifecycleChannelHandler.RejectedPipeliningEvent) {
sendResponse(FAILURE_CLIENT_PIPELINE_REJECT, 400, ctx);
}
super.userEventTriggered(ctx, evt);
}
代码示例来源:origin: com.netflix.zuul/zuul-core
private void sendResponse(final StatusCategory statusCategory, final int status, ChannelHandlerContext ctx) {
if (zuulRequest == null) {
ctx.close();
}
else {
final SessionContext zuulCtx = zuulRequest.getContext();
StatusCategoryUtils.storeStatusCategoryIfNotAlreadyFailure(zuulCtx, statusCategory);
final HttpResponseMessage zuulResponse = new HttpResponseMessageImpl(zuulCtx, zuulRequest, status);
final Headers headers = zuulResponse.getHeaders();
headers.add("Connection", "close");
headers.add("Content-Length", "0");
zuulResponse.finishBufferedBodyIfIncomplete();
responseFilterChain.filter(zuulResponse);
fireEndpointFinish(true);
}
}
代码示例来源:origin: com.netflix.zuul/zuul-core
protected void addZuulFilterChainHandler(final ChannelPipeline pipeline) {
final ZuulFilter<HttpResponseMessage, HttpResponseMessage>[] responseFilters = getFilters(
new OutboundPassportStampingFilter(FILTERS_OUTBOUND_START),
new OutboundPassportStampingFilter(FILTERS_OUTBOUND_END));
// response filter chain
final ZuulFilterChainRunner<HttpResponseMessage> responseFilterChain = getFilterChainRunner(responseFilters,
filterUsageNotifier);
// endpoint | response filter chain
final FilterRunner<HttpRequestMessage, HttpResponseMessage> endPoint = getEndpointRunner(responseFilterChain,
filterUsageNotifier, filterLoader);
final ZuulFilter<HttpRequestMessage, HttpRequestMessage>[] requestFilters = getFilters(
new InboundPassportStampingFilter(FILTERS_INBOUND_START),
new InboundPassportStampingFilter(FILTERS_INBOUND_END));
// request filter chain | end point | response filter chain
final ZuulFilterChainRunner<HttpRequestMessage> requestFilterChain = getFilterChainRunner(requestFilters,
filterUsageNotifier, endPoint);
pipeline.addLast(new ZuulFilterChainHandler(requestFilterChain, responseFilterChain));
}
代码示例来源:origin: com.netflix.zuul/zuul-core
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
LOG.error("zuul filter chain handler caught exception. cause=" + String.valueOf(cause), cause);
if (zuulRequest != null && !isClientChannelClosed(cause)) {
final SessionContext zuulCtx = zuulRequest.getContext();
zuulCtx.setError(cause);
zuulCtx.setShouldSendErrorResponse(true);
sendResponse(FAILURE_LOCAL, 500, ctx);
} else {
fireEndpointFinish(true);
ctx.close();
}
}
内容来源于网络,如有侵权,请联系作者删除!