2017-04-21 45 views
0
1) one spring web project:DemoWeb.war 
2) two tomcat (port: 8080/8081) 
3) spring-session-redis(Using spring-session-redis to realize distributed session.) 

部署:一個項目中,發生了許多tomcat的會議replaceed

SETP1: 期運用這個網址http://ip:8080/demo/登錄成功;

SETP2:訪問菜單網址http://ip:8080/demo/menu成功;

SETP3:在瀏覽器中打開新的標籤頁,並輸入http://ip: /演示/菜單(端口爲差),進入;

我不登陸服務器, 爲什麼http://ip:8081/demo/menu可以訪問成功?

回答

2

如果存儲在HTTP Session數據,它被存儲在Cookie與會話ID。但是,如果你使用的是Redis,數據存儲在Redis store,而不是隻傳遞給餅乾在此方案中的會話ID的Tomcat。由於會話ID對瀏覽器中的兩個tomcat都可用,並且指向相同的Redis會話,因此即使更改端口,也會發現自己已登錄。

+0

就是這樣! 即使我設置了兩個web,web(8080)的用戶表hava testUser1(不是hava testUser2)的差異數據庫; 和web(8081)的用戶表hava testUser2(不是hava testUser1); 問題也是! – Alex

+0

不是有哈瓦什麼辦法? – Alex

+0

在一般情況下,如果兩個相同的應用程序運行在他們的服務器必須使用相同或鏡像數據源。減少您所面對的同步問題。但是,如果您希望爲這兩個應用程序分別提供數據源,那麼一旦您在控制器上收到數據,您就必須在後端驗證數據。 –

相關問題