1. 程式人生 > >單點登入(七)-----實戰-----cas server去掉https驗證

單點登入(七)-----實戰-----cas server去掉https驗證

我們在搭建cas中已經說過如果不搭建https證書體系的需要去掉https的驗證:  

因為cas4.2以上的程式碼做了一些框架的優化,4.2以下的版本的很多配置都是寫在xml檔案中。4.2以上統一提取到了cas.properties檔案中。

所以在去掉https的時候 方式也有所變化。

現在網上查到的資料很多都還停留在對4.2以下版本的配置修改中。

我們這裡把兩種情況都記錄下來。

4.2以上cas server去掉https驗證

屬性設定

我們在官網上看到有關於https的安全認證的屬性有:

# The encryption secret key. By default, must be a octet string of size 256.
# tgc.encryption.key=
# The signing secret key. By default, must be a octet string of size 512. # tgc.signing.key= # Decides whether SSO cookie should be created only under secure connections. # tgc.secure=true # The expiration value of the SSO cookie # tgc.maxAge=-1 # The name of the SSO cookie # tgc.name=TGC # The path to which the SSO cookie will be scoped # tgc.path=/cas
# Decides whether SSO Warning cookie should be created only under secure connections. # warn.cookie.secure=true # The expiration value of the SSO Warning cookie # warn.cookie.maxAge=-1


Decides whether SSO cookie should be created only under secure connections

tgc.secure=true

Decides whether SSO Warning cookie should be created only under secure connections

warn.cookie.secure=true

決定是否需要在安全連線(https)的情況下才能建立tgc和warn.cookie。

我們這裡只要把tgc.secure和warn.cookie.secure這兩個屬性修改成false即可。

serviceId修改

還有一個地方需要修改,否則會報Application Not Authorized to Use CAS。

src/main/resources/services中的  HTTPSandIMAPS-10000001.json

{
  "@class" : "org.jasig.cas.services.RegexRegisteredService",
  "serviceId" : "^(https|imaps)://.*",
  "name" : "HTTPS and IMAPS",
  "id" : 10000001,
  "description" : "This service definition authorized all application urls that support HTTPS and IMAPS protocols.",
  "proxyPolicy" : {
    "@class" : "org.jasig.cas.services.RefuseRegisteredServiceProxyPolicy"
  }

 "serviceId" : "^(https|imaps)://.*"

需要修改成 "serviceId" : "^(https|imaps|http)://.*"   或者把https修改成http。


4.2以下cas server去掉https驗證

cas預設是採用https模式的,我們沒有配置證書,所以要麼配置證書,要麼取消https的過濾,讓http協議也能訪問。

我們這裡取消https的配置,讓http也能訪問。

需要修改三個地方的配置(針對4.0.0版本,其他版本的話第一處必改,其他的看看還有沒有帶有cookie的檔名)

修改一deployerConfigContext.xml增加引數p:requireSecure="false"

我們在tomcat的webapp中找到 cas/WEB-INF/deployerConfigContext.xml


裡面有一句

<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient"/>

這裡需要增加引數p:requireSecure="false",requireSecure屬性意思為是否需要安全驗證,即HTTPS,false為不採用。修改後為:

  <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
 p:httpClient-ref="httpClient"  p:requireSecure="false"/>


修改二ticketGrantingTicketCookieGenerator.xml修改p:cookieSecure="false"

 我們在tomcat的webapp中找到cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml


<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

      p:cookieSecure="true"

      p:cookieMaxAge="-1"

      p:cookieName="CASTGC"

      p:cookiePath="/cas" />

 引數p:cookieSecure="true",同理為HTTPS驗證相關,TRUE為採用HTTPS驗證,FALSE為不採用https驗證。

引數p:cookieMaxAge="-1",簡單說是COOKIE的最大生命週期,-1為無生命週期,即只在當前開啟的IE視窗有效,IE關閉或重新開啟其它視窗,仍會要求驗證。可以根據需要修改為大於0的數字,比如3600等,意思是在3600秒內,開啟任意IE視窗,都不需要驗證。

 這裡把 cookieSecure修改為false就行了


修改三 warnCookieGenerator.xml修改p:cookieSecure="false"

我們在tomcat的webapp中找到cas/WEB-INF/spring-configuration/warnCookieGenerator.xml


裡面有

<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
p:cookieSecure="true"
p:cookieMaxAge="-1"
p:cookieName="CASPRIVACY"
p:cookiePath="/cas" />

引數p:cookieSecure="true",同理為HTTPS驗證相關,TRUE為採用HTTPS驗證,FALSE為不採用https驗證。

 這裡把 cookieSecure修改為false就行了。


三個地方都修改好後我們就可以啟動tomcat了,這時候https的方式已經取消,可以使用http的方式訪問了。


去掉登入頁面上的提示

我們去掉https驗證之後 保證了我們在cas server和cas client 使用http訪問也能進行正常互動。

但是原生的cas server頁面上的提示是不會根據設定自動消失的。只能我們手動去除。


如果需要去除的話嗎,步驟如下:

配置完http方式訪問之後頁面上的 提示還是存在的,如果我們之後會對登入介面樣式完全改版,所以可以不用管它。如果還是需要把它去掉的話,cas統一認證的登陸頁面位於:cas目錄/WEB-INF/view/jsp/default 資料夾裡,其中ui/casLoginView.jsp為登陸頁面。我們找到這段程式碼刪掉即可。

<c:if test="${not pageContext.request.secure}">
  <div id="msg" class="errors">
    <h2>Non-secure Connection</h2>
    <p>You are currently accessing CAS over a non-secure connection.  Single Sign On WILL NOT WORK.  In order to have single sign on work, you MUST log in over HTTPS.</p>
  </div>
</c:if>




相關推薦

登入()-----實戰-----cas server去掉https驗證

我們在搭建cas中已經說過如果不搭建https證書體系的需要去掉https的驗證:  因為cas4.2以上的程式碼做了一些框架的優化,4.2以下的版本的很多配置都是寫在xml檔案中。4.2以上統一提取到

CAS登入(2):cas-4.0.0-server 去掉https驗證

目錄 目錄 去掉https驗證 1. 修改deployerConfigContext.xml新增p:requireSecure=”false” 2. 修改ticketGrantingTicketCookieGenerat

ssm + redis 實現sso登入,類適於CAS

1.原理講解 由於CAS 過於重量級且時間成本較高 ,所以我決定公司採用自己的sso 單點系統來處理系統之間只要一個系統登入成功,其他子系統就不用登入。 舉例說明:  比如公司有 系統 A 系統 B 此時我們就要定義一個專門用來做登入認證的sso系統。 如果使用者登入的是

登入之使用cas基於Oauth2整合第三方登入

為什麼要使用第三方登入呢? 小編也是一個使用者站在使用者角度來考慮,並不希望每次遇到一個需要註冊登入的應用總是不斷的註冊新的帳號,帳號多了越是麻煩而且由於多個帳號設定不同的密碼記憶也是很困難的,故而大多數帳號密碼會設定為相同的密碼,這樣可能 這就會造成 1

Mvc4登入之三Cas 客戶端配置

       上一篇部落格講解了cas服務端的配置,這篇部落格為大家講一下cas 客戶端的配置! 第一步建專案        自己新建一個mvc的專案。如圖所示!             第二步添引用        將上一篇部落格開頭中讓下載的檔案,下載下來後,將dotn

CAS5.2x登入(一)——搭建cas伺服器

單點登入的介紹 單點登入(Single Sign On ,簡稱SSO)是目前比較流行的服務於企業業務整合的解決方案之一,SSO 使得在多個應用系統中,使用者只需要登入一次就可以訪問所有相互信任的應用系統。 CAS(Central Authentication

CAS登入(4):cas-4.0.0-server 配置mysql資料庫查詢認證

目錄 目錄 概述 環境要求 建立資料庫 Tips 配置cas-server 配置dataSource 配置passwordEnco

CAS登入(1):cas-4.0.0-server 簡單部署

下載CAS4.0.0 選擇4.0.0 的原因是:4.0.0以後打包比較麻煩,4.0.0版本內有打包好的war 下載地址 github專案地址 cas 4.0.0地址 解壓找到war包部署 解壓 cas-server-4.

CAS Server 登入SSO 認證服務搭建部署

部署環境 1 下載CAS Server 4.0 :https://github.com/apereo/cas/releases/tag/v4.0.0     這裡選擇4.0是因為其有官方release版本的cas-server-webapp-4.0.0.war。

CAS實現SSO登入-CAS Server搭建

        最近公司連續接了三四個單點登入整合的專案,由我們公司提供CAS Server端的,也有需要我們把Client與其他公司提供的Server端對接的,我負責把我們公司的一個Client與另外一個公司提供的Server端對接,由於我們需要.Net2.0

Jasig cas 登入系統Server&Java Client配置

Jasig cas(Central Authentication Service)官方站點:http://www.jasig.org/cas,訪問這個站點需要翻牆。 cas官網文件訪問地址:https://wiki.jasig.org/display/CASUM/Hom

SSO登入系列3:cas-server端配置認證方式實踐(資料來源+自定義java類認證)

所有下載資料+源程式地址:本文最下方。一定注意配置,不會配置的可以聯絡我。 落雨 cas 單點登入 本篇將講解cas-server端的認證方式 1.最簡單的認證,使用者名稱和密碼一致就登入成功 2.配置oracle的jdbc資料來源,通過spring動態查

CAS登入系列之極速入門於實戰教程(4.2.7)

@目錄一、 SSO簡介1.1 單點登入定義1.2 單點登入角色1.3 單點登入分類二、 CAS簡介2.1 CAS簡單定義2.2 CAS體系結構2.3 CAS原理三、CAS服務端搭建3.1 CAS支援Http登入配置3.2 CAS服務端部署執行四、CAS客戶端接入五、客戶端極速接入 一、 SSO簡介 1.1 單

CAS登入系列之極速入門與實戰教程(4.2.7)

@目錄一、 SSO簡介1.1 單點登入定義1.2 單點登入角色1.3 單點登入分類二、 CAS簡介2.1 CAS簡單定義2.2 CAS體系結構2.3 CAS原理三、CAS服務端搭建3.1 CAS支援Http登入配置3.2 CAS服務端部署執行四、CAS客戶端接入五、客戶端極速接入 一、 SSO簡介 1.1 單

CAS 實現 SSO 登入

環境   cas-server-4.1.8,cas-client-3.4.0,Java-8,Maven-3,Tomcat-7.0.72   CAS Server 安裝   點此進入 CAS 下載列表,選擇下載 cas-4.1.

基於CAS登入SSO[5]: 基於Springboot實現CAS客戶端的前後端分離

基於CAS的單點登入SSO[5]: 基於Springboot實現CAS客戶端的前後端分離 作者:家輝,日期:2017-08-24 CSDN部落格: http://blog.csdn.net/gobitan 摘要:現在大部分系統的開發都已經

基於CAS登入SSO[4]: 加入兩個CAS客戶端測試登入

基於CAS的單點登入SSO[4]: 加入兩個CAS客戶端測試單點登入 作者:家輝,日期:2017-08-22 CSDN部落格: http://blog.csdn.net/gobitan 摘要:本系列的前三篇文章分別搭建了基於CAS的單點登入伺服器,並讓伺

基於CAS登入SSO[3]: 改造cas-overlays-template支援Redis儲存Ticket

基於CAS的單點登入SSO[3]: 改造cas-overlays-template支援Redis儲存Ticket 作者:家輝,日期:2017-08-20 CSDN部落格: http://blog.csdn.net/gobitan 摘要:預

CAS統一登入認證(16): openedx 通過oauth2.0接入cas登入

openedx 是流行的開源mooc(慕課)平臺,我這安裝的是edx-ginkgo.2-7版本,cas是5.3.2 這個接入頗費了一番周折,總是設定不成功,因為沒有可以直接參考的案例,只有edx的官方站點有些說明,但都是針對google,facebook,github等賬號的第三方oauth2.

CAS統一登入認證(12): 通過oauth2.0登入Afterlogic webmail

  這段時間在研究CAS單點登入,已做了十幾個軟體的整合登入,有demo,有實際的各種應用軟體,目前最難啃的就是這個webmail整合登入,一是因為郵箱系統本身安全性高,二是要通過擴充套件外掛和 API介面,三是網上沒有找到有價值的資料,該修改那個檔案,全靠看原始碼除錯摸索。 1.整合