This commit is contained in:
@@ -131,6 +131,7 @@
|
||||
<!--
|
||||
当Server为HTTP协议时, response节点才有效。
|
||||
defcookie 节点: 当response里输出的cookie没有指定domain 和path时,使用该节点的默认值。
|
||||
如果addheader、setheader 的value值以request.parameters.开头则表示从request.parameters中获取对应的parameter值
|
||||
如果addheader、setheader 的value值以request.headers.开头则表示从request.headers中获取对应的header值
|
||||
例如下面例子是在Response输出header时添加两个header(一个addHeader, 一个setHeader)。
|
||||
-->
|
||||
|
||||
@@ -5,19 +5,19 @@
|
||||
*/
|
||||
package org.redkale.net.http;
|
||||
|
||||
import org.redkale.util.AnyValue.DefaultAnyValue;
|
||||
import org.redkale.util.AnyValue.Entry;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.*;
|
||||
import java.net.*;
|
||||
import java.nio.*;
|
||||
import java.lang.reflect.Type;
|
||||
import java.net.HttpCookie;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.channels.*;
|
||||
import java.nio.file.*;
|
||||
import java.text.*;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.*;
|
||||
import org.redkale.convert.json.*;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import org.redkale.convert.json.JsonConvert;
|
||||
import org.redkale.net.*;
|
||||
import org.redkale.util.AnyValue.DefaultAnyValue;
|
||||
import org.redkale.util.AnyValue.Entry;
|
||||
import org.redkale.util.*;
|
||||
|
||||
/**
|
||||
@@ -494,7 +494,10 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
||||
}
|
||||
if (this.defaultAddHeaders != null) {
|
||||
for (String[] headers : this.defaultAddHeaders) {
|
||||
if (headers.length > 2) {
|
||||
if (headers.length > 3) {
|
||||
String v = request.getParameter(headers[2]);
|
||||
if (v != null) this.header.addValue(headers[0], v);
|
||||
} else if (headers.length > 2) {
|
||||
String v = request.getHeader(headers[2]);
|
||||
if (v != null) this.header.addValue(headers[0], v);
|
||||
} else {
|
||||
@@ -504,8 +507,12 @@ public class HttpResponse extends Response<HttpContext, HttpRequest> {
|
||||
}
|
||||
if (this.defaultSetHeaders != null) {
|
||||
for (String[] headers : this.defaultSetHeaders) {
|
||||
if (headers.length > 2) {
|
||||
this.header.setValue(headers[0], request.getHeader(headers[2]));
|
||||
if (headers.length > 3) {
|
||||
String v = request.getParameter(headers[2]);
|
||||
if (v != null) this.header.setValue(headers[0], v);
|
||||
} else if (headers.length > 2) {
|
||||
String v = request.getHeader(headers[2]);
|
||||
if (v != null) this.header.setValue(headers[0], v);
|
||||
} else {
|
||||
this.header.setValue(headers[0], headers[1]);
|
||||
}
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
*/
|
||||
package org.redkale.net.http;
|
||||
|
||||
import java.net.*;
|
||||
import java.nio.*;
|
||||
import java.net.HttpCookie;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.*;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
import org.redkale.net.*;
|
||||
import org.redkale.util.*;
|
||||
import org.redkale.watch.*;
|
||||
import org.redkale.watch.WatchFactory;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -78,7 +78,9 @@ public final class HttpServer extends Server<String, HttpContext, HttpRequest, H
|
||||
for (int i = 0; i < addHeaders.length; i++) {
|
||||
String val = addHeaders[i].getValue("value");
|
||||
if (val == null) continue;
|
||||
if (val.startsWith("request.headers.")) {
|
||||
if (val.startsWith("request.parameters.")) {
|
||||
defaultAddHeaders.add(new String[]{addHeaders[i].getValue("name"), val, val.substring("request.parameters.".length()), null});
|
||||
} else if (val.startsWith("request.headers.")) {
|
||||
defaultAddHeaders.add(new String[]{addHeaders[i].getValue("name"), val, val.substring("request.headers.".length())});
|
||||
} else if (val.startsWith("system.property.")) {
|
||||
String v = System.getProperty(val.substring("system.property.".length()));
|
||||
@@ -92,7 +94,9 @@ public final class HttpServer extends Server<String, HttpContext, HttpRequest, H
|
||||
if (setHeaders.length > 0) {
|
||||
for (int i = 0; i < setHeaders.length; i++) {
|
||||
String val = setHeaders[i].getValue("value");
|
||||
if (val != null && val.startsWith("request.headers.")) {
|
||||
if (val != null && val.startsWith("request.parameters.")) {
|
||||
defaultSetHeaders.add(new String[]{setHeaders[i].getValue("name"), val, val.substring("request.parameters.".length()), null});
|
||||
} else if (val != null && val.startsWith("request.headers.")) {
|
||||
defaultSetHeaders.add(new String[]{setHeaders[i].getValue("name"), val, val.substring("request.headers.".length())});
|
||||
} else {
|
||||
defaultSetHeaders.add(new String[]{setHeaders[i].getValue("name"), val});
|
||||
|
||||
Reference in New Issue
Block a user