CASエージェントサービス構成(二)
2930 ワード
四、テストページ
ここでtest.comの下にindexを配置します.jsp、コードは以下の通りです.
説明:1.http://backend.test.com/personal、http://backend.test.com/test.do2つのインタフェースはアイデンティティを必要とし、1つはページを返し、1つはjsonを返す.
2.ページのテストリダイレクトsso.test.comは単点登録を行います
3.ページはbackendサービスのインタフェースを呼び出し、結果を表示します(cas 2.0エージェント認証モード、ユーザーはbackendサービスを開いていません)
4.「パーソナルセンター」をクリックしてbackend service自動アイデンティティ(cas 1.0モード)に入る
ここでtest.comの下にindexを配置します.jsp、コードは以下の通りです.
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="org.jasig.cas.client.validation.*,org.jasig.cas.client.util.*,org.jasig.cas.client.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>client one</title>
</head>
<body>
sso cas client one !!! <br>
<p>hello : ${_const_cas_assertion_.principal.name}</p>
<a href="http://backend.test.com/personal"> </a>
</body>
<script type="text/javascript">
$={
isIE : /MSIE/i.test(navigator.userAgent),
json2str:function(o,f){
var r = [];
if(o===undefined || o===null) return "null";
if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(
)/g,"\
").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
if(typeof o == "object"){
if(!o.sort){
for(var i in o){
r.push((f?"\"" + i+"\":":i+":")+this.json2str(o[i],f));
}
if(this.isIE && !/^
?function\s*toString\(\)\s*\{
?\s*\[native code\]
?\s*\}
?\s*$/.test(o.toString))
r.push("toString:"+o.toString.toString());
r="{"+r.join()+"}";
}
else{
for(var i =0;i<o.length;i++)
r.push(this.json2str(o[i],f));
r="["+r.join()+"]";
}
return r;
};
return o.toString();
}
}
function showmsg(e){
alert($.json2str(e));
}
</script>
<%
String serviceUrl = "http://backend.test.com/test.do?jsback=showmsg";
final Assertion assertion=(Assertion)session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
final String proxyTicket = assertion.getPrincipal().getProxyTicketFor(serviceUrl);
request.setAttribute("serviceUrl",serviceUrl);
request.setAttribute("proxyTicket",proxyTicket);
%>
<script type="text/javascript" src="${serviceUrl}&ticket=${proxyTicket}"></script>
</html>
説明:1.http://backend.test.com/personal、http://backend.test.com/test.do2つのインタフェースはアイデンティティを必要とし、1つはページを返し、1つはjsonを返す.
2.ページのテストリダイレクトsso.test.comは単点登録を行います
3.ページはbackendサービスのインタフェースを呼び出し、結果を表示します(cas 2.0エージェント認証モード、ユーザーはbackendサービスを開いていません)
4.「パーソナルセンター」をクリックしてbackend service自動アイデンティティ(cas 1.0モード)に入る