2016-07-22 80 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; 
    }});