weblogic單點登入session問題,伺服器之間的重定向!
在找東西時偶然看到的覺得很有趣就粘過來了,也許以後用得著!
刪除了論壇中一些回覆,或許應該改個名字叫:伺服器之間的重定向!
最近在做一個單點登入的介面,基本實現如下:
1. webApp-A
if (session.getAttribute("UserID") != null) {
response.sendRedirect(ssoURL);
}
2. webApp-B (在另外一臺伺服器上)
顯示登入介面,登入,然後返回我webApp-A的一URL
3. webApp-A 根據 返回URL中的result引數判斷登入的結果,並設定session變數UserID
問題就出在了在重定向到ssoURL,並從webAPP-B返回後,weblogic的sessionid變了,所有的session 變數都沒有了,重新整理一次sessionid就變一次,同樣的程式用tomcat一點問題都沒有,不知道問題出在哪,該怎麼解決
-------------------------------------------------------------------
webApp-A和webApp-B 分別跑在不同的伺服器上
webApp-A 中會重定向到webApp-B的URL
webApp-B 中也會重定到webApp-A的URL
-----------------------------------------------------------------
測試程式碼如下:
a.jsp
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
a
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<%
out.println("SessionID:"+session.getId());
response.sendRedirect("http://localhost:8080/wtui/b.jsp
%>
</body>
</html>
b.jsp
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
b
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<%
out.println("SessionID:"+session.getId());
response.sendRedirect("http://localhost:7001/wtui/c.jsp");
%>
</body>
</html>
c.jsp
<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
c
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<% out.println("SessionID:"+session.getId());
%>
<A href="a.jsp"><br>返回</A>
</body>
</html>
把a.jsp,c.jsp 放到本機的7001埠,b.jsp 放到本機的8080埠,
(我的7001埠是weblogic 8.1 sp2,8080埠是tomcat 5.0),然後 http://localhost:7001/wtui/a.jsp
最後可以看到c.jsp顯示出來的session id, 重新整理一下頁面,看看是不是每次session id 都在變?
---------------------------------------------------------------------------------------------------------------
就一切正常了,原來做模擬環境的時候沒有找兩臺機器,只是在同一機器開了兩個埠。
不過我還是想知道為什麼weblogic為出現這種問題
評論:如果兩臺伺服器是在相同的毓下,還會有這樣的問題。