有没有办法覆盖Spring websocket集成附带的会话ID生成器?它总是8个字符(例如:session = imjxvgob),我想生成一个更长的基于UUID的会话ID。
已知CVE与此相关: http://pivotal.io/security/cve-2015-0201
JdkIdGenerator类已添加到spring-framework 4.2 Issue: SPR-12658,但我不知道如何将其连接到我的配置中。
我正在使用SimpleBroker。
修改 看起来在客户端生成会话ID:socksjs-1.0.3.js:655
var sessionId = options.sessionId || 8;
if (typeof sessionId === 'function') {
this._generateSessionId = sessionId;
} else if (typeof sessionId === 'number') {
this._generateSessionId = function() {
return random.string(sessionId);
};
这似乎不对。
答案 0 :(得分:1)
我最终得到了一个服务器生成的UUID,并将其作为“选项”提供给sockjs库。
var serverGeneratedSessionId = '${serverGeneratedUUID}'; // new org.springframework.util.JdkIdGenerator().generateId()
var socket = new SockJS('/path', null, {sessionId: function(){
return serverGeneratedSessionId;
}});