【发布时间】:2015-04-02 17:24:34
【问题描述】:
目前,当成功连接到端点时,我通过响应标头将自定义令牌(称为访问令牌)传递回客户端。此标头设置正确,我可以通过分析 HTTP 响应来验证标头。
但是,当尝试从框架对象中获取标头时,标头未设置(请参阅下面的 JavaScript):
stompClient.connect(headers,
function(frame) {
console.log('=========================================');
console.log(frame.headers['access-token']);
console.log(frame);
console.log('=========================================');
stompClient.subscribe('/topic/test', function(stuff){
console.debug(stuff);
});
},
function(error) {
//error code
}
);
我在服务器上设置响应头如下:
public class HttpSessionHandshakeInterceptorImpl extends HttpSessionHandshakeInterceptor {
@Override
public boolean beforeHandshake(ServerHttpRequest request,
ServerHttpResponse response, WebSocketHandler wsHandler,
Map<String, Object> attributes) throws Exception {
response.getHeaders().set("access-token", token);
return super.beforeHandshake(request, response, wsHandler, attributes);
我删除了一些代码,可以确认正在调用拦截器。我认为这不是在调用连接函数时将标头值传回客户端的正确方法吗?我似乎找不到任何有关如何完成此操作的文档。谢谢。
【问题讨论】:
标签: java javascript spring websocket stomp