增加Http响应包中Date头的可配置功能
This commit is contained in:
@@ -236,7 +236,8 @@
|
|||||||
如果addheader、setheader 的value值以request.parameters.开头则表示从request.parameters中获取对应的parameter值
|
如果addheader、setheader 的value值以request.parameters.开头则表示从request.parameters中获取对应的parameter值
|
||||||
如果addheader、setheader 的value值以request.headers.开头则表示从request.headers中获取对应的header值
|
如果addheader、setheader 的value值以request.headers.开头则表示从request.headers中获取对应的header值
|
||||||
例如下面例子是在Response输出header时添加两个header(一个addHeader, 一个setHeader)。
|
例如下面例子是在Response输出header时添加两个header(一个addHeader, 一个setHeader)。
|
||||||
options 节点: 设置了该节点却auto=true,当request的method=OPTIONS自动设置addheader、setheader并返回200状态码
|
options 节点: 设置了该节点且auto=true,当request的method=OPTIONS自动设置addheader、setheader并返回200状态码
|
||||||
|
date 节点: 设置了该节点且auto=true,返回response会包含Date头信息,默认为auto=true
|
||||||
-->
|
-->
|
||||||
<response>
|
<response>
|
||||||
<contenttype plain="text/plain; charset=utf-8" json="application/json; charset=utf-8"/>
|
<contenttype plain="text/plain; charset=utf-8" json="application/json; charset=utf-8"/>
|
||||||
@@ -245,6 +246,7 @@
|
|||||||
<setheader name="Access-Control-Allow-Headers" value="request.headers.Access-Control-Request-Headers"/>
|
<setheader name="Access-Control-Allow-Headers" value="request.headers.Access-Control-Request-Headers"/>
|
||||||
<setheader name="Access-Control-Allow-Credentials" value="true"/>
|
<setheader name="Access-Control-Allow-Credentials" value="true"/>
|
||||||
<options auto="true" />
|
<options auto="true" />
|
||||||
|
<date auto="true" />
|
||||||
</response>
|
</response>
|
||||||
<!--
|
<!--
|
||||||
【节点在<server>中唯一】
|
【节点在<server>中唯一】
|
||||||
|
|||||||
@@ -132,6 +132,8 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
|||||||
|
|
||||||
private final boolean autoOptions;
|
private final boolean autoOptions;
|
||||||
|
|
||||||
|
private final boolean autoDate;
|
||||||
|
|
||||||
private final HttpCookie defcookie;
|
private final HttpCookie defcookie;
|
||||||
|
|
||||||
private final List<HttpRender> renders;
|
private final List<HttpRender> renders;
|
||||||
@@ -147,7 +149,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
|||||||
public HttpResponse(HttpContext context, HttpRequest request,
|
public HttpResponse(HttpContext context, HttpRequest request,
|
||||||
String plainContentType, String jsonContentType,
|
String plainContentType, String jsonContentType,
|
||||||
String[][] defaultAddHeaders, String[][] defaultSetHeaders,
|
String[][] defaultAddHeaders, String[][] defaultSetHeaders,
|
||||||
HttpCookie defcookie, boolean autoOptions, List< HttpRender> renders) {
|
HttpCookie defcookie, boolean autoOptions, boolean autoDate, List< HttpRender> renders) {
|
||||||
super(context, request);
|
super(context, request);
|
||||||
this.plainContentType = plainContentType == null || plainContentType.isEmpty() ? "text/plain; charset=utf-8" : plainContentType;
|
this.plainContentType = plainContentType == null || plainContentType.isEmpty() ? "text/plain; charset=utf-8" : plainContentType;
|
||||||
this.jsonContentType = jsonContentType == null || jsonContentType.isEmpty() ? "application/json; charset=utf-8" : jsonContentType;
|
this.jsonContentType = jsonContentType == null || jsonContentType.isEmpty() ? "application/json; charset=utf-8" : jsonContentType;
|
||||||
@@ -157,6 +159,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
|||||||
this.defaultSetHeaders = defaultSetHeaders;
|
this.defaultSetHeaders = defaultSetHeaders;
|
||||||
this.defcookie = defcookie;
|
this.defcookie = defcookie;
|
||||||
this.autoOptions = autoOptions;
|
this.autoOptions = autoOptions;
|
||||||
|
this.autoDate = autoDate;
|
||||||
this.renders = renders;
|
this.renders = renders;
|
||||||
this.hasRender = renders != null && !renders.isEmpty();
|
this.hasRender = renders != null && !renders.isEmpty();
|
||||||
this.onlyoneHttpRender = renders != null && renders.size() == 1 ? renders.get(0) : null;
|
this.onlyoneHttpRender = renders != null && renders.size() == 1 ? renders.get(0) : null;
|
||||||
@@ -870,7 +873,7 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
|||||||
buffer.put(("Content-Type: " + (this.contentType == null ? this.plainContentType : this.contentType) + "\r\n").getBytes());
|
buffer.put(("Content-Type: " + (this.contentType == null ? this.plainContentType : this.contentType) + "\r\n").getBytes());
|
||||||
}
|
}
|
||||||
buffer.put(serverNameBytes);
|
buffer.put(serverNameBytes);
|
||||||
buffer.put(("Date: " + RFC_1123_DATE_TIME.format(java.time.ZonedDateTime.now(ZONE_GMT)) + "\r\n").getBytes());
|
if (autoDate) buffer.put(("Date: " + RFC_1123_DATE_TIME.format(java.time.ZonedDateTime.now(ZONE_GMT)) + "\r\n").getBytes());
|
||||||
if (!this.request.isKeepAlive()) buffer.put(connectCloseBytes);
|
if (!this.request.isKeepAlive()) buffer.put(connectCloseBytes);
|
||||||
|
|
||||||
if (this.defaultAddHeaders != null) {
|
if (this.defaultAddHeaders != null) {
|
||||||
|
|||||||
@@ -295,6 +295,7 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
|
|||||||
final List<String[]> defaultAddHeaders = new ArrayList<>();
|
final List<String[]> defaultAddHeaders = new ArrayList<>();
|
||||||
final List<String[]> defaultSetHeaders = new ArrayList<>();
|
final List<String[]> defaultSetHeaders = new ArrayList<>();
|
||||||
boolean autoOptions = false;
|
boolean autoOptions = false;
|
||||||
|
boolean autoDate = true;
|
||||||
String plainContentType = null;
|
String plainContentType = null;
|
||||||
String jsonContentType = null;
|
String jsonContentType = null;
|
||||||
HttpCookie defaultCookie = null;
|
HttpCookie defaultCookie = null;
|
||||||
@@ -366,6 +367,9 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
|
|||||||
}
|
}
|
||||||
AnyValue options = resps == null ? null : resps.getAnyValue("options");
|
AnyValue options = resps == null ? null : resps.getAnyValue("options");
|
||||||
autoOptions = options != null && options.getBoolValue("auto", false);
|
autoOptions = options != null && options.getBoolValue("auto", false);
|
||||||
|
|
||||||
|
AnyValue dates = resps == null ? null : resps.getAnyValue("date");
|
||||||
|
autoDate = dates != null && dates.getBoolValue("auto", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -374,6 +378,7 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
|
|||||||
final String[][] addHeaders = defaultAddHeaders.isEmpty() ? null : defaultAddHeaders.toArray(new String[defaultAddHeaders.size()][]);
|
final String[][] addHeaders = defaultAddHeaders.isEmpty() ? null : defaultAddHeaders.toArray(new String[defaultAddHeaders.size()][]);
|
||||||
final String[][] setHeaders = defaultSetHeaders.isEmpty() ? null : defaultSetHeaders.toArray(new String[defaultSetHeaders.size()][]);
|
final String[][] setHeaders = defaultSetHeaders.isEmpty() ? null : defaultSetHeaders.toArray(new String[defaultSetHeaders.size()][]);
|
||||||
final boolean options = autoOptions;
|
final boolean options = autoOptions;
|
||||||
|
final boolean adate = autoDate;
|
||||||
|
|
||||||
final HttpCookie defCookie = defaultCookie;
|
final HttpCookie defCookie = defaultCookie;
|
||||||
final String addrHeader = remoteAddrHeader;
|
final String addrHeader = remoteAddrHeader;
|
||||||
@@ -384,7 +389,7 @@ public class HttpServer extends Server<String, HttpContext, HttpRequest, HttpRes
|
|||||||
rcapacity, bufferPool, responsePool, this.maxbody, this.charset, this.address, this.resourceFactory,
|
rcapacity, bufferPool, responsePool, this.maxbody, this.charset, this.address, this.resourceFactory,
|
||||||
this.prepare, this.aliveTimeoutSeconds, this.readTimeoutSeconds, this.writeTimeoutSeconds);
|
this.prepare, this.aliveTimeoutSeconds, this.readTimeoutSeconds, this.writeTimeoutSeconds);
|
||||||
responsePool.setCreator((Object... params) -> new HttpResponse(httpcontext, new HttpRequest(httpcontext, addrHeader),
|
responsePool.setCreator((Object... params) -> new HttpResponse(httpcontext, new HttpRequest(httpcontext, addrHeader),
|
||||||
plainType, jsonType, addHeaders, setHeaders, defCookie, options, ((HttpPrepareServlet) prepare).renders));
|
plainType, jsonType, addHeaders, setHeaders, defCookie, options, adate, ((HttpPrepareServlet) prepare).renders));
|
||||||
return httpcontext;
|
return httpcontext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user