用node-http-proxy重写响应头

我使用的是node-http-proxy,想要监视特定的响应标头,并在必要时重写它。这里有人建议这样做吗?

我的代理服务器位于几个不同的节点服务器以及一个Java

WebApp的前面。Java应用程序正在设置Cookie,但是该Cookie的路径相对于Web应用程序的上下文。我需要cookie是安全的,并且有一个无需修改Java应用程序即可到达root的路径。

换句话说,将返回以下标头:

set-cookie: MYSPECIALCOOKIE=679b6291-d1cc-47be; Path=/app; HttpOnly

我想将Path值重写为:

set-cookie: MYSPECIALCOOKIE=679b6291-d1cc-47be; Path=/; HttpOnly; Secure

我不清楚如何使用node-http-proxy做到这一点。有什么建议吗?有中间件可以帮助您吗?

回答:

您可以通过重载响应对象的writeHead函数来实现。例如,此代码会将“ foo”响应标头设置为值“

bar”。我已经指出了可以在其中添加自己的逻辑以更改标头值的地方。

JavaScript不是我的主要语言,因此可能有一种惯用的方法来重载writeHead方法。

httpProxy = require('http-proxy');

httpProxy.createServer(function (req, res, proxy) {

res.oldWriteHead = res.writeHead;

res.writeHead = function(statusCode, headers) {

/* add logic to change headers here */

var contentType = res.getHeader('content-type');

res.setHeader('content-type', 'text/plain');

// old way: might not work now

// as headers param is not always provided

// https://github.com/nodejitsu/node-http-proxy/pull/260/files

// headers['foo'] = 'bar';

res.oldWriteHead(statusCode, headers);

}

proxy.proxyRequest(req, res, {

host: 'localhost',

port: 3000

});

}).listen(8000);

以上是 用node-http-proxy重写响应头 的全部内容, 来源链接: utcz.com/qa/415308.html

回到顶部