CASエージェントサービス構成(二)

2930 ワード

四、テストページ
ここで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モード)に入る