• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    jasigCAS實現單點登錄(數據庫認證)

    來源:懂視網 責編:小采 時間:2020-11-09 15:31:38
    文檔

    jasigCAS實現單點登錄(數據庫認證)

    jasigCAS實現單點登錄(數據庫認證):這個CAS( Central Authentication Service )是耶魯大學的開源項目,旨在實現企業應用單點登錄,還是很不錯的,牛b的大學確實不一樣,不是我們這些2b學校式的教育。其官網http://www.jasig.org/cas,很不幸,應該翻了墻才能進去,自己去搗鼓翻墻吧,建議就
    推薦度:
    導讀jasigCAS實現單點登錄(數據庫認證):這個CAS( Central Authentication Service )是耶魯大學的開源項目,旨在實現企業應用單點登錄,還是很不錯的,牛b的大學確實不一樣,不是我們這些2b學校式的教育。其官網http://www.jasig.org/cas,很不幸,應該翻了墻才能進去,自己去搗鼓翻墻吧,建議就

    這個CAS( Central Authentication Service )是耶魯大學的開源項目,旨在實現企業應用單點登錄,還是很不錯的,牛b的大學確實不一樣,不是我們這些2b學校式的教育。其官網http://www.jasig.org/cas,很不幸,應該翻了墻才能進去,自己去搗鼓翻墻吧,建議就GoA

    這個CAS(Central Authentication Service)是耶魯大學的開源項目,旨在實現企業應用單點登錄,還是很不錯的,牛b的大學確實不一樣,不是我們這些2b學校式的教育。其官網http://www.jasig.org/cas,很不幸,應該翻了墻才能進去,自己去搗鼓翻墻吧,建議就GoAgent足已。

  • 實驗環境:
  • 1 1.jdk7_45

    2 2.tomcat7_45

    3 3.三臺虛擬機:

    4 1.tomcat1(部署cas驗證服務器)

    5 2.tomcat2(其中部署了兩個web應用cas-web-client, cas-web-client2)

    6 3.mysql server一臺(直接到數據庫種驗證)

  • 原理圖:

  • 資源下載地址:
  • http://downloads.jasig.org/

    解壓之,jar會再modules目錄下,其他都為源代碼項目

    已經打包的server:

    client:

    ------------------------------------------------------

    開始搭建:

  • CAS服務器配置:
  • 1.在tomcat1所在機器生成證書:

    這時會在用戶主目錄下生成.keystore文件,這個文件也可在上述命令種指定,其中生成過程會填入一些信息,注意輸入第一個時(名字與姓氏)就輸入你本機器的域名(不能時IP), 這里我的是www.tomcat1.com:

    2.導出證書(后面將其導入客戶端的jre環境中):

    于是在用戶主目錄下就有了ssotest.crt證書文件(保留著,待會客戶端配置要用),

    3.配置Tomcat SSL: ${TOMCAT_HOME}/conf/server.xml中83-93行修改為:

    01

    02 This connector uses the JSSE configuration, when using APR, the

    03 connector should be using the OpenSSL style configuration

    04 described in the APR documentation -->

    05

    06 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

    07 maxThreads="150" scheme="https" secure="true"

    08 clientAuth="false" sslProtocol="TLS"

    09 keystoreFile="/home/tomcatadmin/.keystore"

    10 keystorePass="ssotest"/>

    4.將上面下載資源中的cas-server-webapp-3.5.2.war改名為cas.war, 復制到${TOMCAT_HOME}/webapps/下,啟動tomcat,這時進入https://www.tomcat1.com:8443/cas/, 見下圖,則服務端已經配置ok:

    這時輸入用戶名及密碼(保持一樣就可以,默認CAS驗證方式只要用戶名密碼一樣就行), 可見其默認驗證實現類SimpleTestUsernamePasswordAuthenticationHandler:

    01 public final class SimpleTestUsernamePasswordAuthenticationHandler extends

    02 AbstractUsernamePasswordAuthenticationHandler {

    03

    04 public boolean authenticateUsernamePasswordInternal(final UsernamePasswordCredentials credentials) {

    05 final String username = credentials.getUsername();

    06 final String password = credentials.getPassword();

    07

    08 if (StringUtils.hasText(username) && StringUtils.hasText(password)

    09 && username.equals(getPasswordEncoder().encode(password))) {//用戶名及密碼相同就成功

    10 return true;

    11 }

    12 return false;

    13 }

    14 }

    這樣CAS服務端就默認配置完畢了,待會兒我們還要配置數據庫驗證。

  • 配置web客戶端:
  • 1.生成.keystore(同上);

    2.將CAS服務端的導出ssotest.crt證書拷貝到某目錄,并且導入到客戶端機器的jre運行環境中:

    1 keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file ~/ssotest.crt -alias ssotest

    2 # NOTE: 有可能會有異常:java.io.IOException: Keystore was tampered with, or password was incorrect. 那就先刪除本機上述的cacerts文件。

    3.配置客戶端Tomcat SSL(同上);

    4.新建WEB項目cas-web-client, 并加入依賴包:cas-client-core-3.2.1.jar,commons-logging-1.1.jar

    5.配置web.xml:

    01 xml version="1.0" encoding="UTF-8"?>

    02 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

    03 <display-name>cas-web-client2display-name>

    04 <listener>

    05 <listener-class>

    06 org.jasig.cas.client.session.SingleSignOutHttpSessionListener

    07 listener-class>

    08 listener>

    09 <filter>

    10 <filter-name>CasSingleSignOutFilterfilter-name>

    11 <filter-class>org.jasig.cas.client.session.SingleSignOutFilterfilter-class>

    12 filter>

    13 <filter-mapping>

    14 <filter-name>CasSingleSignOutFilterfilter-name>

    15 <url-pattern>/*url-pattern>

    16 filter-mapping>

    17 <filter>

    18 <filter-name>CASFilterfilter-name>

    19 <filter-class>org.jasig.cas.client.authentication.AuthenticationFilterfilter-class>

    20 <init-param>

    21 <param-name>casServerLoginUrlparam-name>

    22 <param-value>https://www.tomcat1.com:8443/cas/loginparam-value>

    23 init-param>

    24 <init-param>

    25 <param-name>serverNameparam-name>

    26 <param-value>http://www.tomcat2.com:8080param-value>

    27 init-param>

    28 filter>

    29 <filter-mapping>

    30 <filter-name>CASFilterfilter-name>

    31 <url-pattern>/*url-pattern>

    32 filter-mapping>

    33 <filter>

    34 <filter-name>CasTicketFilterfilter-name>

    35 <filter-class>

    36 org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilterfilter-class>

    37 <init-param>

    38 <param-name>casServerUrlPrefixparam-name>

    39 <param-value>https://www.tomcat1.com:8443/casparam-value>

    40 init-param>

    41 <init-param>

    42 <param-name>serverNameparam-name>

    43 <param-value>http://www.tomcat2.com:8080param-value>

    44 init-param>

    45 filter>

    46 <filter-mapping>

    47 <filter-name>CasTicketFilterfilter-name>

    48 <url-pattern>/*url-pattern>

    49 filter-mapping>

    50 <filter>

    51 <filter-name>CasRequestWrapFilterfilter-name>

    52 <filter-class>

    53 org.jasig.cas.client.util.HttpServletRequestWrapperFilterfilter-class>

    54 filter>

    55 <filter-mapping>

    56 <filter-name>CasRequestWrapFilterfilter-name>

    57 <url-pattern>/*url-pattern>

    58 filter-mapping>

    59 <filter>

    60 <filter-name>AssertionThreadLocalFilterfilter-name>

    61 <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilterfilter-class>

    62 filter>

    63 <filter-mapping>

    64 <filter-name>AssertionThreadLocalFilterfilter-name>

    65 <url-pattern>/*url-pattern>

    66 filter-mapping>

    67 <welcome-file-list>

    68 <welcome-file>index.jspwelcome-file>

    69 welcome-file-list>

    70 web-app>

    這樣cas-web-client就完成了,拷貝一份為另一個web客戶端cas-web-client2:


    啟動Cas Server所在tomcat(Tomcat1),再啟動web客戶端所在tomcat(Tomcat2),此時我們訪問兩個web客戶端:

    http://www.tomcat2.com:8080/cas-web-client/index.jsp

    http://www.tomcat2.com:8080/cas-web-client2/index.jsp

    都會被重定想到CAS Server登錄界面,登錄成功其中之一(將看到對應的index.jsp),再刷新另一個(也能看到對應的index.jsp了,因為已經登錄過了), 這就算服務端和客戶端都配置OK了。

    ------------------------------------------------------

  • 現在就是要定制我們自己的驗證方式(基于數據庫驗證):
  • 1.新建WEB項目cas-auth-server,你需要將cas-server-webapp-3.5.2.war中的資源對應拷貝到項目中,再把下載包中cas-server-webapp的源碼考到項目中,由于基于數據庫驗證,還得將cas-server-support-jdbc-3.5.2.jar和mysql-connector驅動包拷貝到WEB-INF/lib目錄下,這樣就構成了純凈的cas server項目,當然你也可以通過maven去構建,官網也有說明,如圖:

    2.我們要做的是修改一些配置,就是WEB-INF/deployerConfigContext.xml文件,先配置mysql數據源:

    1

    2 <bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource">

    3 <property name="driverClassName" value="com.mysql.jdbc.Driver" />

    4 <property name="url" value="jdbc:mysql://192.168.141.129:3306/blog?useUnicode=true&characterEncoding=utf-8"/>

    5 <property name="username" value="mysqladmin" />

    6 <property name="password" value="mysqladmin" />

    7 bean>

    3.修改 authenticationManager bean的屬性 authenticationHandlers:

    01 <property name="authenticationHandlers">

    02 <list>

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

    04

    05 class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />-->

    06

    07 <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

    08 <property name="dataSource" ref="mysqlDataSource"/>

    09 <property name="sql"

    10 value="select password from t_user where username = ?" />

    11 <property name="passwordEncoder" ref="myPasswordEncoder">property>

    12 bean>

    13 list>

    14 property>

    1

    2 <bean id="myPasswordEncoder" class="org.jasig.cas.custom.encoder.MyPasswordEncoder" />


    這樣就配置完成了,將項目導出war包,并部署到tomcat1所在機器上運行起來,效果會之前一樣。

    收工。

    http://my.oschina.net/indestiny/blog/200768

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    jasigCAS實現單點登錄(數據庫認證)

    jasigCAS實現單點登錄(數據庫認證):這個CAS( Central Authentication Service )是耶魯大學的開源項目,旨在實現企業應用單點登錄,還是很不錯的,牛b的大學確實不一樣,不是我們這些2b學校式的教育。其官網http://www.jasig.org/cas,很不幸,應該翻了墻才能進去,自己去搗鼓翻墻吧,建議就
    推薦度:
    標簽: 登錄 驗證 實現
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品毛片免费观看| 国产亚洲精品国产| 国产成人精品免费视频大全麻豆| 国产精品白丝jkav网站| 国产精品亚洲A∨天堂不卡| 亚洲av午夜国产精品无码中文字 | 国产AV国片精品| 伊人久久精品影院| 国产精品小黄鸭一区二区三区| 99国产精品久久久久久久成人热| 中文字幕一精品亚洲无线一区| 九九久久精品无码专区| 99久久综合国产精品二区| 999成人精品视频在线| 精品一区二区三区无码免费视频 | 精品人妻系列无码天堂| 亚洲午夜精品久久久久久浪潮| 国产精品亚洲视频| 88久久精品无码一区二区毛片| 成人精品在线视频| 国产精品9999久久久久| 国产在线精品一区二区中文| 无码精品日韩中文字幕| 亚洲欧美一级久久精品| 久久精品成人欧美大片| 国产精品成人99久久久久| 亚洲国产成人久久精品动漫| 国产精品素人搭讪在线播放| 成人伊人精品色XXXX视频| 国产精品高清一区二区三区| 久久国产精品一国产精品金尊| 少妇人妻偷人精品无码视频| 亚洲精品无码AV人在线播放| 亚洲国产精品无码中文字| 亚洲AV成人精品日韩一区18p| 天天爽夜夜爽8888视频精品| 午夜成人精品福利网站在线观看| 免费短视频软件精品一区二区| 久久久久久久久久免免费精品 | 99免费精品国产| 国产高清在线精品一区二区三区|