|
|
|
@ -80,6 +80,8 @@ public class EncoderHandler extends ChannelOutboundHandlerAdapter {
|
|
|
|
|
|
|
|
|
|
private static final Logger log = LoggerFactory.getLogger(EncoderHandler.class); |
|
|
|
|
|
|
|
|
|
private static final String SEPARATOR_COMMA = ","; |
|
|
|
|
|
|
|
|
|
private final PacketEncoder encoder; |
|
|
|
|
|
|
|
|
|
private String version; |
|
|
|
@ -201,9 +203,17 @@ public class EncoderHandler extends ChannelOutboundHandlerAdapter {
|
|
|
|
|
res.headers().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_CREDENTIALS, Boolean.TRUE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 使websocket请求可携带特定header
|
|
|
|
|
String allowHeaders = configuration.getAccessControlAllowHeaders(); |
|
|
|
|
// 取出现有access-control-allow-headers,去掉空格并拼接新的header到末尾。直接addHeader时IE 10/11会找不到。
|
|
|
|
|
if (!isEmpty(allowHeaders)) { |
|
|
|
|
res.headers().add(HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS, configuration.getAccessControlAllowHeaders()); |
|
|
|
|
String header = res.headers().get(HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS); |
|
|
|
|
if (!isEmpty(header)) { |
|
|
|
|
header = header.trim() + SEPARATOR_COMMA + configuration.getAccessControlAllowHeaders(); |
|
|
|
|
res.headers().set(HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS, header); |
|
|
|
|
} else { |
|
|
|
|
res.headers().set(HttpHeaderNames.ACCESS_CONTROL_ALLOW_HEADERS, configuration.getAccessControlAllowHeaders()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|