public class CorsHandler extends ChannelDuplexHandler
This handler can be configured using a CorsConfig
, please
refer to this class for details about the configuration options available.
ChannelHandler.Sharable
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ANY_ORIGIN |
private CorsConfig |
config |
private static InternalLogger |
logger |
private HttpRequest |
request |
Constructor and Description |
---|
CorsHandler(CorsConfig config) |
Modifier and Type | Method and Description |
---|---|
void |
channelRead(ChannelHandlerContext ctx,
java.lang.Object msg)
Calls
ChannelHandlerContext.fireChannelRead(Object) to forward
to the next ChannelInboundHandler in the ChannelPipeline . |
private void |
echoRequestOrigin(HttpResponse response) |
void |
exceptionCaught(ChannelHandlerContext ctx,
java.lang.Throwable cause)
Calls
ChannelHandlerContext.fireExceptionCaught(Throwable) to forward
to the next ChannelHandler in the ChannelPipeline . |
private static void |
forbidden(ChannelHandlerContext ctx,
HttpRequest request) |
private void |
handlePreflight(ChannelHandlerContext ctx,
HttpRequest request) |
private static boolean |
isPreflightRequest(HttpRequest request) |
private static void |
respond(ChannelHandlerContext ctx,
HttpRequest request,
HttpResponse response) |
private void |
setAllowCredentials(HttpResponse response) |
private void |
setAllowHeaders(HttpResponse response) |
private void |
setAllowMethods(HttpResponse response) |
private static void |
setAnyOrigin(HttpResponse response) |
private void |
setExposeHeaders(HttpResponse response) |
private void |
setMaxAge(HttpResponse response) |
private boolean |
setOrigin(HttpResponse response) |
private static void |
setOrigin(HttpResponse response,
java.lang.String origin) |
private void |
setPreflightHeaders(HttpResponse response)
This is a non CORS specification feature which enables the setting of preflight
response headers that might be required by intermediaries.
|
private static void |
setVaryHeader(HttpResponse response) |
private boolean |
validateOrigin() |
void |
write(ChannelHandlerContext ctx,
java.lang.Object msg,
ChannelPromise promise)
Calls
ChannelHandlerContext.write(Object, ChannelPromise) to forward
to the next ChannelOutboundHandler in the ChannelPipeline . |
bind, close, connect, deregister, disconnect, flush, read
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerAdded, handlerRemoved
private static final InternalLogger logger
private static final java.lang.String ANY_ORIGIN
private final CorsConfig config
private HttpRequest request
public CorsHandler(CorsConfig config)
public void channelRead(ChannelHandlerContext ctx, java.lang.Object msg) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireChannelRead(Object)
to forward
to the next ChannelInboundHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.channelRead
in interface ChannelInboundHandler
channelRead
in class ChannelInboundHandlerAdapter
java.lang.Exception
private void handlePreflight(ChannelHandlerContext ctx, HttpRequest request)
private void setPreflightHeaders(HttpResponse response)
response
- the HttpResponse to which the preflight response headers should be added.private boolean setOrigin(HttpResponse response)
private boolean validateOrigin()
private void echoRequestOrigin(HttpResponse response)
private static void setVaryHeader(HttpResponse response)
private static void setAnyOrigin(HttpResponse response)
private static void setOrigin(HttpResponse response, java.lang.String origin)
private void setAllowCredentials(HttpResponse response)
private static boolean isPreflightRequest(HttpRequest request)
private void setExposeHeaders(HttpResponse response)
private void setAllowMethods(HttpResponse response)
private void setAllowHeaders(HttpResponse response)
private void setMaxAge(HttpResponse response)
public void write(ChannelHandlerContext ctx, java.lang.Object msg, ChannelPromise promise) throws java.lang.Exception
ChannelDuplexHandler
ChannelHandlerContext.write(Object, ChannelPromise)
to forward
to the next ChannelOutboundHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.write
in interface ChannelOutboundHandler
write
in class ChannelDuplexHandler
ctx
- the ChannelHandlerContext
for which the write operation is mademsg
- the message to writepromise
- the ChannelPromise
to notify once the operation completesjava.lang.Exception
- thrown if an error accourpublic void exceptionCaught(ChannelHandlerContext ctx, java.lang.Throwable cause) throws java.lang.Exception
ChannelInboundHandlerAdapter
ChannelHandlerContext.fireExceptionCaught(Throwable)
to forward
to the next ChannelHandler
in the ChannelPipeline
.
Sub-classes may override this method to change behavior.exceptionCaught
in interface ChannelHandler
exceptionCaught
in interface ChannelInboundHandler
exceptionCaught
in class ChannelInboundHandlerAdapter
java.lang.Exception
private static void forbidden(ChannelHandlerContext ctx, HttpRequest request)
private static void respond(ChannelHandlerContext ctx, HttpRequest request, HttpResponse response)