|
43 | 43 | import java.util.Set;
|
44 | 44 | import java.util.regex.Pattern;
|
45 | 45 |
|
| 46 | +import static org.elasticsearch.http.netty.NettyHttpServerTransport.*; |
46 | 47 | import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.*;
|
47 | 48 |
|
48 | 49 | /**
|
@@ -97,20 +98,24 @@ public void sendResponse(RestResponse response) {
|
97 | 98 | resp = new DefaultHttpResponse(HttpVersion.HTTP_1_1, status);
|
98 | 99 | }
|
99 | 100 | if (RestUtils.isBrowser(nettyRequest.headers().get(USER_AGENT))) {
|
100 |
| - if (transport.settings().getAsBoolean("http.cors.enabled", true)) { |
| 101 | + if (transport.settings().getAsBoolean(SETTING_CORS_ENABLED, true)) { |
101 | 102 | String originHeader = request.header(ORIGIN);
|
102 | 103 | if (!Strings.isNullOrEmpty(originHeader)) {
|
103 | 104 | if (corsPattern == null) {
|
104 |
| - resp.headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, transport.settings().get("http.cors.allow-origin", "*")); |
| 105 | + resp.headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, transport.settings().get(SETTING_CORS_ALLOW_ORIGIN, "*")); |
105 | 106 | } else {
|
106 | 107 | resp.headers().add(ACCESS_CONTROL_ALLOW_ORIGIN, corsPattern.matcher(originHeader).matches() ? originHeader : "null");
|
107 | 108 | }
|
108 | 109 | }
|
109 | 110 | if (nettyRequest.getMethod() == HttpMethod.OPTIONS) {
|
110 | 111 | // Allow Ajax requests based on the CORS "preflight" request
|
111 |
| - resp.headers().add(ACCESS_CONTROL_MAX_AGE, transport.settings().getAsInt("http.cors.max-age", 1728000)); |
112 |
| - resp.headers().add(ACCESS_CONTROL_ALLOW_METHODS, transport.settings().get("http.cors.allow-methods", "OPTIONS, HEAD, GET, POST, PUT, DELETE")); |
113 |
| - resp.headers().add(ACCESS_CONTROL_ALLOW_HEADERS, transport.settings().get("http.cors.allow-headers", "X-Requested-With, Content-Type, Content-Length")); |
| 112 | + resp.headers().add(ACCESS_CONTROL_MAX_AGE, transport.settings().getAsInt(SETTING_CORS_MAX_AGE, 1728000)); |
| 113 | + resp.headers().add(ACCESS_CONTROL_ALLOW_METHODS, transport.settings().get(SETTING_CORS_ALLOW_METHODS, "OPTIONS, HEAD, GET, POST, PUT, DELETE")); |
| 114 | + resp.headers().add(ACCESS_CONTROL_ALLOW_HEADERS, transport.settings().get(SETTING_CORS_ALLOW_HEADERS, "X-Requested-With, Content-Type, Content-Length")); |
| 115 | + } |
| 116 | + |
| 117 | + if (transport.settings().getAsBoolean(SETTING_CORS_ALLOW_CREDENTIALS, false)) { |
| 118 | + resp.headers().add(ACCESS_CONTROL_ALLOW_CREDENTIALS, "true"); |
114 | 119 | }
|
115 | 120 | }
|
116 | 121 | }
|
|
0 commit comments