修改sso1下的web.xml。添加以下代碼:web
org.jasig.cas.client.session.SingleSignOutHttpSessionListener SingleSignOutFilter org.jasig.cas.client.session.SingleSignOutFilter SingleSignOutFilter /* CASValidationFilter org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter casServerUrlPrefix https://jeesz.cn:8443/cas; serverName http://www.sso1.com; useSession true exceptionOnValidationFailure false redirectAfterValidation true CASValidationFilter /* CASFilter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl https://jeesz.cn:8443/cas/login; serverName http://www.sso1.com; CASFilter /* CASHttpServletRequestWrapperFilter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CASHttpServletRequestWrapperFilter /* CASAssertionThreadLocalFilter org.jasig.cas.client.util.AssertionThreadLocalFilter CASAssertionThreadLocalFilter /* SSO4InvokeContextFilter com.common.core.busi.other.filter.SSO4InvokeContextFilter SSO4InvokeContextFilter /*
5.修改sso2下的web.xml。添加以下代碼:spring
org.jasig.cas.client.session.SingleSignOutHttpSessionListener SingleSignOutFilter org.jasig.cas.client.session.SingleSignOutFilter SingleSignOutFilter /* CASValidationFilter org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter casServerUrlPrefix https://jeesz.cn:8443/cas; serverName http://www.sso2.com; useSession true exceptionOnValidationFailure false redirectAfterValidation true CASValidationFilter /* CASFilter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl https://jeesz.cn:8443/cas/login; serverName http://www.sso2.com; CASFilter /* CASHttpServletRequestWrapperFilter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CASHttpServletRequestWrapperFilter /* CASAssertionThreadLocalFilter org.jasig.cas.client.util.AssertionThreadLocalFilter CASAssertionThreadLocalFilter /* SSO4InvokeContextFilter com.common.web.filter.SSO4InvokeContextFilter SSO4InvokeContextFilter /*
6.編輯sso1,sso2 index.jsp頁面,複製以下代碼:apache
sso1 index.jsp:瀏覽器
這個是www.sso1.comtomcat
你好我是sso1頁面:服務器
<%= request.getRemoteUser()== null ? "null" : request.getRemoteUser() %>Sso2 index.jsp:cookie
這個是www.sso2.comsession
你好我是sso2頁面:app
<%= request.getRemoteUser()== null ? "null" : request.getRemoteUser() %>7.經過eclipse發佈到Tomcat服務器上去。找到Tomcat,webapps下的sso1,sso2文件夾,分別複製sso1和sso2下面的全部文件,找到Tomcat根目錄下的sso1,sso2(就是咱們前面步驟新建的目錄),在sso1,sso2下新建ROOT目錄,把剛剛複製的文件粘貼。eclipse
配置Tomcat 下server.xml文件,加入以下代碼:
8.重啓Tomcat,打開瀏覽器輸入網址:www.sso1.com:8080,輸入用戶名與密碼,若是出現如下信息,則成功
在瀏覽器上輸入www.sso1.com:8080,你會發現跳回到登陸頁面,不要擔憂。打開ticketGrantingTicketCookieGenerator.xml路徑在apache-tomcat-7.0.40\cas\ROOT\WEB-INF\spring-configuration。找到p:cookieSecure="true",將其修改成p:cookieSecure="false",重啓Tomcat,測試一下。
注:咱們以上步驟返回的只有一個用戶名,CAS服務器默認返回該信息。
第是節:修改單點登陸默認界面
第一步:找到它本身的頁面
打開cas工程,找到G:\SoftWare\tomcat\apache-tomcat-7.0.2\apache-tomcat-7.0.2\webapps\cas\WEB-INF\view\jsp\default這個目錄,將其複製一份重命名放在G:\SoftWare\tomcat\apache-tomcat-7.0.2\apache-tomcat-7.0.2\webapps\cas\WEB-INF\view\jsp\目錄下,
第二步:修改默認登陸頁面
將其命名爲mydefalut以下圖:
而後將apache-tomcat-7.0.2\webapps\cas\WEB-INF\classes
目錄下的default_views.properties複製一份,重命名爲mydefault_views.properties。修改裏面的內容,將全部裏面的路徑中的default改爲mydefault。而後修改WEB-INF下的cas.properties將裏面的cas.viewResolver.basename後面的值修改爲mydefault_views即:
cas.viewResolver.basename=mydefault_views
若是要修改登陸界面,只須要修改casLoginView.jsp便可。
第五節:單點登出配置
第一步:配置單點登陸監聽器和過濾器
1.Tomcat的sso1,sso2的工程裏,在web.xml裏分別添加一下代碼:
org.jasig.cas.client.session.SingleSignOutHttpSessionListener CAS Single Sign Out Filter org.jasig.cas.client.session.SingleSignOutFilter CAS Single Sign Out Filter /*
注意:這些代碼應該放在web.xml文件其餘過濾器的最前面。
2.在sso1,sso2的index.jsp頁面添加如下代碼:
http://jeesz.cn:8080/logout">單點退出
3.重啓Tomcat,訪問http://jeesz.cn:8080/點擊單點退出,若是成功,就會出現以下界面:
通常註銷是跳到原項目的登陸頁面,因此咱們須要對CAS作以下配置:
增長屬性 p:followServiceRedirects="true"
2.修改客戶端,sso1,sso2 index.jsp文件將原來的單點登出的URL修改爲:
Sso1:http://jeesz.cn:8080/logout?service=http://www.sso1.com:8080
Sso2:http://jeesz.cn:8080/logout?service=http://www.sso2.com:8080
重啓Tomcat,測試正常。
第六節:多項目集成單點登陸配置
第一步:單點登陸系統與其餘項目集成
在WEB 項目中的WEB-INF目錄下的web.xml文件,添加如下配置.
org.jasig.cas.client.session.SingleSignOutHttpSessionListener SingleSignOutFilter org.jasig.cas.client.session.SingleSignOutFilter SingleSignOutFilter /* CASValidationFilter org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter casServerUrlPrefix https://jeesz.cn:8443/cas; serverName http://www.sso3.com:6060; useSession true exceptionOnValidationFailure false redirectAfterValidation true CASValidationFilter /* CASFilter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl https://jeesz.cn:8443/cas/login; serverName http:// www.sso3.com:6060 CASFilter /* CASHttpServletRequestWrapperFilter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CASHttpServletRequestWrapperFilter /* CASAssertionThreadLocalFilter org.jasig.cas.client.util.AssertionThreadLocalFilter CASAssertionThreadLocalFilter /* SSO4InvokeContextFilter com.common.web.filter.SSO4InvokeContextFilter SSO4InvokeContextFilter
當sso驗證完成以後,客戶端系統須要接收sso系統返回的結果時,須要定義一個過濾器獲取返回結果,而後針對返回結果作相關處理.