2016-07-22 76 views
1

有没有办法覆盖Spring websocket集成自带的会话ID生成器?它总是8个字符(例如:session = imjxvgob),我想生成一个更长的基于UUID的会话ID。如何覆盖Spring Websockets中的sessionId生成器?

与此相关的已知CVE: http://pivotal.io/security/cve-2015-0201

JdkIdGenerator类加入弹簧框架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); 
}; 

这看起来不正确。

回答

1

我结束了一个服务器生成的UUID,并将其作为'选项'输入到sockjs库中。

var serverGeneratedSessionId = '${serverGeneratedUUID}'; // new org.springframework.util.JdkIdGenerator().generateId() 
var socket = new SockJS('/path', null, {sessionId: function(){ 
     return serverGeneratedSessionId; 
    }});