cas單點登入伺服器很多時候都是被b/s的應用使用,那麼對已有些系統是cs的那麼怎麼去呼叫呢,這個時候就需要使用webservice來給cs的系統呼叫了,我們先來說說先決條件吧:
1)整合需要的jar包,這個是必不可少的
com.noelios.restlet.ext.servlet-1.1.1.jar2)配置,在web.xml中增加乙個servlet配置com.noelios.restlet.ext.spring-1.1.1.jar
com.noelios.restlet-1.1.1.jar
org.restlet.ext.spring-1.1.1.jar
org.restlet-1.1.1.jar
cglib-2.2.jar
cas-server-integration-restlet-3.4.7.jar
restlet
com.noelios.restlet.ext.spring.restletframeworkservlet
1restlet
/v1/*
那麼我們的cs客戶端怎麼去處理呢,以及怎麼去拿到使用者資料呢?需要有三次互動才能取得使用者資料
1)cs客戶端提供使用者名稱和密碼,請求http://localhost:8080/tfp-s/v1/tickets,如果使用者合法則得到tgt資料。
2)根據tgt和service取得st票據,請求的路徑是:http://localhost:8080/tfp-s/v1/tickets/tgt_編號
3)驗證st票據,得到使用者資訊的xml格式資訊。
樣例**如下:
view plain
copy to clipboard
public
class
client
/*** 取得st
* @param server
* @param ticketgrantingticket
* @param service
*/private
static
string getserviceticket(
final
string server,
final
string ticketgrantingticket,
final
string service) );
try
} catch
(final
ioexception e)
finally
return
null
; }
/*** @param server
* @param username
* @param password
*/private
static
string getticketgrantingticket(
final
string server,
final
string username,
final
string password) );
try
default
: warning(
"invalid response code ("
+ post.getstatuscode() +
") from cas server!"
);
info(
"response (1k): "
+ response.substring(
0, math.min(
1024
, response.length())));
break
; }
} catch
(final
ioexception e)
finally
return
null
; }
private
static
void
ticketvalidate(string servervalidate, string serviceticket, string service)
default
:
} }
catch
(exception e)
finally
} private
static
void
notnull(
final
object object,
final
string message)
public
static
void
main(
final
string args)
throws
exception
private
static
void
warning(string msg)
private
static
void
info(string msg)
}
如果對返回來的使用者資訊是什麼格式不清楚,那麼下面是乙個xml格式。
view plain
copy to clipboard
<
cas:serviceresponse
>
<
cas:authenticationsuccess
>
<
cas:user
>
xufcas:user
>
<
cas:attributes
>
<
cas:securitylevel
>
2cas:securitylevel
>
<
cas:usertype
>
個人使用者
cas:usertype
>
<
cas:age
>
32cas:age
>
cas:attributes
>
cas:authenticationsuccess
>
cas:serviceresponse
>
這個格式怎麼修改?在透露一點吧,就是在cas伺服器那邊是不是有casservicevalidationfailure.jsp檔案,對了,就是它決定返回的xml格式的。如果使用filter,其實也是傳遞回來這個xml,只是驗證票據的過濾器,將這個xml轉換成assertion物件了。明白了吧。
單點登陸 單點登陸設計
1單點登入基本流程場景1 使用者未登入情況下訪問受限資源 例如 使用者在站點a 登入成功了,這時候使用者再去訪問站點 下的受限資源。private a.do 由於使用者在站點a登入了,那麼在 x.com 域下一定存在authid的cookie,並且redis中一定儲存了使用者的登入資訊。當使用者訪問...
SSO 單點登陸
1.單點登陸概述 單點登入 single sign on 簡稱為 sso,是目前比較流行的企業業務整合的解決方案之一。sso的定義是在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。很早期的公司,一家公司可能只有乙個server,慢慢的server開始變多了。每個server都...
單點登陸問題
單點登入 單點登入 sso,single sign on 是一種方便使用者訪問多個系統的技術,使用者只需在登入時進行一次註冊,就可以在多個系統間自由穿梭,不必重複輸入使用者名稱和密碼來確定身份。單點登入的實質就是安全上下文 security context 或憑證 credential 在多個應用系...