多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > 綜合技術(shù) > Cas(04)――更改認(rèn)證方式

Cas(04)――更改認(rèn)證方式

來源:程序員人生   發(fā)布時(shí)間:2015-03-09 08:16:17 閱讀次數(shù):3950次

       在Cas Server的WEB-INF目錄下有1個(gè)deployerConfigContext.xml文件,該文件是基于Spring的配置文件,里面寄存的內(nèi)容常常是部署人員需要修改的內(nèi)容。其中認(rèn)證方式也是定義在這個(gè)文件中的,id為authenticationManager的bean的authenticationHandlers即定義了需要使用的AuthenticationHandler列表。默許使用了兩個(gè)AuthenticationHandler,第1個(gè)是用來確保當(dāng)前使用的是https協(xié)議的HttpBasedServiceCredentialsAuthenticationHandler,第2個(gè)是我們需要改的,其簡(jiǎn)單認(rèn)證用戶名與密碼相等的SimpleTestUsernamePasswordAuthenticationHandler。我們只需要更改這里的SimpleTestUsernamePasswordAuthenticationHandler就好了。Cas中已為我們提供了很多AuthenticationHandler的實(shí)現(xiàn),包括基于數(shù)據(jù)庫認(rèn)證的實(shí)現(xiàn),固然用戶也能夠?qū)崿F(xiàn)自己的AuthenticationHandler。下面將以使用數(shù)據(jù)庫進(jìn)行認(rèn)證為例講授如何更改認(rèn)證方式。

       Cas的各個(gè)模塊都是基于Maven開發(fā)的,Cas Server也不例外。所以官方推薦我們使用Maven的War覆蓋機(jī)制來修改Cas Server的配置文件。Maven的War覆蓋機(jī)制是指當(dāng)1個(gè)package類型為war的Maven項(xiàng)目A中引入了1個(gè)package類型為war的項(xiàng)目B作為依賴時(shí),終究項(xiàng)目A打包的war包中不但會(huì)包括項(xiàng)目A的內(nèi)容,還會(huì)包括項(xiàng)目B的內(nèi)容,且相同位置的文件項(xiàng)目A中的會(huì)覆蓋項(xiàng)目B中的,即當(dāng)項(xiàng)目A和項(xiàng)目B在WEB-INF下都具有1個(gè)web.xml文件時(shí),終究生成的war包中將使用項(xiàng)目A在WEB-INF下的web.xml文件;而當(dāng)項(xiàng)目A在WEB-INF下沒有web.xml文件,而項(xiàng)目B在WEB-INF下具有web.xml文件時(shí)終究生成的war包中將使用項(xiàng)目B在WEB-INF下的web.xml文件。所以如果我們要修改Cas Server的配置文件,我們可以建立1個(gè)自己的基于Maven的Web項(xiàng)目,然后引入Cas Server作為依賴,并在自己的項(xiàng)目中建立對(duì)應(yīng)的deployerConfigContext.xml文件。下面來看詳細(xì)步驟。

 

       1、建立基于Maven的Web項(xiàng)目,取名為myCasServer。

       2、打開pom.xml文件,刪除默許的依賴項(xiàng),添加以下內(nèi)容。

   <build>

      <plugins>

         <plugin>

            <artifactId>maven-war-plugin</artifactId>

            <configuration>

                <warName>cas</warName>

            </configuration>

         </plugin>

      </plugins>

   </build>

 

   <dependencies>

      <dependency>

         <groupId>org.jasig.cas</groupId>

         <artifactId>cas-server-webapp</artifactId>

         <version>${cas.version}</version>

         <type>war</type>

         <scope>runtime</scope>

      </dependency>

   </dependencies>

 

   <properties>

      <cas.version>3.5.2</cas.version>

   </properties>

 

   <repositories>

      <repository>

         <id>ja-sig</id>

         <url>http://oss.sonatype.org/content/repositories/releases/ </url>

      </repository>

   </repositories>

 

       3、刪除myCasServer項(xiàng)目中src/main/webapp下的index.jsp文件和src/main/webapp/WEB-INF下的web.xml文件,由于在cas-server-webapp中都存在對(duì)應(yīng)的文件,不刪除的話打包后的結(jié)果將是myCasServer中的覆蓋cas-server-webapp中的。如果這個(gè)時(shí)候使用Maven進(jìn)行打包的話你將得到1個(gè)和cas-server-webapp1模1樣的war包。

       4、使用數(shù)據(jù)庫進(jìn)行認(rèn)證的話還需要添加對(duì)應(yīng)的依賴,打開myCasServer的pom.xml文件,添加以下依賴。

      <dependency>

         <groupId>org.jasig.cas</groupId>

         <artifactId>cas-server-support-jdbc</artifactId>

         <version>${cas.version}</version>

         <scope>runtime</scope>

      </dependency>

 

       5、將cas-server-webapp/WEB-INF下的deployerConfigContext.xml文件copy到myCasServer的src/main/webapp/WEB-INF目錄下。

       6、基于數(shù)據(jù)庫的AuthenticationHandler有多種,這里以QueryDatabaseAuthenticationHandler為例。QueryDatabaseAuthenticationHandler需要配置兩個(gè)參數(shù),dataSource和sql。dataSource就是數(shù)據(jù)源,表示從哪一個(gè)數(shù)據(jù)源進(jìn)行查詢。sql是對(duì)應(yīng)的查詢語句,其會(huì)接收username作為參數(shù),然后查詢出對(duì)應(yīng)的密碼,以后QueryDatabaseAuthenticationHandler會(huì)將查詢出來的密碼與用戶提交的密碼進(jìn)行匹配。所以這里我們打開復(fù)制到myCasServer中的deployerConfigContext.xml文件,找到id為authenticationManager的bean的authenticationHandlers屬性定義,將最后1個(gè)AuthenticationHandler替換成我們想要的QueryDatabaseAuthenticationHandler。

       替換前

      <property name="authenticationHandlers">

         <list>

            <beanclass="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"

                p:httpClient-ref="httpClient" />

            <bean

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

         </list>

      </property>

 

       替換后:

      <property name="authenticationHandlers">

         <list>

            <beanclass="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"

                p:httpClient-ref="httpClient" />

            <beanclass="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

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

                <property name="sql" value="select password from t_user where username = ?"/>

            </bean>

         </list>

      </property>

 

       像dataSource的定義及其需要使用到的依賴包我就不貼了,比較經(jīng)常使用。

 

       打包以后生成的war包中使用的AuthenticationHandler就會(huì)是我們?cè)趍yCasServer的src/main/webapp/WEB-INF目錄下的deployerConfigContext.xml文件中定義的QueryDatabaseAuthenticationHandler了。以后需要修改Cas Server中的其它內(nèi)容也能夠依照此種方式進(jìn)行修改。

 

(注:本文是基于cas 3.5.2所寫)

(注:原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。原文地址:http://haohaoxuexi.iteye.com/blog/2128869)

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲国产精品久久久久久网站 | 视频日韩p影院永久免费 | 九九涩| 尤物视频在线 | 色综合欧美综合天天综合 | 亚洲吹箫 | 日本一级淫片aaaaaa | 国产校园春色 | 亚洲欧美综合另类 | 欧美日韩a∨毛片一区 | 国产精品a v 免费视频 | 亚洲美女影院 | 爱爱欧美在线观看视频 | 在线观看国产精品麻豆 | 欧美在线视频二区 | 午夜男人视频 | 欧美一级免费观看 | www.黄色网址.com | 久久www免费人成看片入口 | 亚洲专区欧美 | 免费一级国产生活片 | ppypp日本欧美一区二区 | 久久久久久一级毛片免费野外 | 一区二区三区在线视频观看 | 青青国产成人精品视频 | 成年人免费视频网站 | 最近高清中文在线国语视频 | 在线播放性xxx欧美 在线播放亚洲美女视频网站 | 欧美另类bbw| 久久精品老司机 | 欧美一级高清片免费一级 | free性欧美xxx狂欢 | 一级毛片一级毛片a毛片欧美 | 一二三四视频观看中文在线看 | 亚洲国产日韩欧美在线vip1区 | 全黄冷激性性视频 | 97精品国产福利一区二区三区 | 日本aaaa片毛片免费观看 | 视频一区二区免费 | 国产美女久久久久久久久久久 | 亚洲专区视频 |