日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Cas(04)――更改認證方式

Cas(04)――更改認證方式

來源:程序員人生   發布時間:2015-03-09 08:16:17 閱讀次數:3952次

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

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

 

       1、建立基于Maven的Web項目,取名為myCasServer。

       2、打開pom.xml文件,刪除默許的依賴項,添加以下內容。

   <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項目中src/main/webapp下的index.jsp文件和src/main/webapp/WEB-INF下的web.xml文件,由于在cas-server-webapp中都存在對應的文件,不刪除的話打包后的結果將是myCasServer中的覆蓋cas-server-webapp中的。如果這個時候使用Maven進行打包的話你將得到1個和cas-server-webapp1模1樣的war包。

       4、使用數據庫進行認證的話還需要添加對應的依賴,打開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、基于數據庫的AuthenticationHandler有多種,這里以QueryDatabaseAuthenticationHandler為例。QueryDatabaseAuthenticationHandler需要配置兩個參數,dataSource和sql。dataSource就是數據源,表示從哪一個數據源進行查詢。sql是對應的查詢語句,其會接收username作為參數,然后查詢出對應的密碼,以后QueryDatabaseAuthenticationHandler會將查詢出來的密碼與用戶提交的密碼進行匹配。所以這里我們打開復制到myCasServer中的deployerConfigContext.xml文件,找到id為authenticationManager的bean的authenticationHandlers屬性定義,將最后1個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的定義及其需要使用到的依賴包我就不貼了,比較經常使用。

 

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

 

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

(注:原創文章,轉載請注明出處。原文地址:http://haohaoxuexi.iteye.com/blog/2128869)

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 美女在线观看www | 美国黄色毛片女人性生活片 | 天天操,夜夜操 | 看亚洲黄色片 | 一区二区三区在线观看免费视频 | 国产精品a久久久久 | 国产日韩欧美一区 | 久久久a| 高清不卡一区二区 | 日韩视频在线一区 | 久久黄色| 国产成人精品免费视频 | 高清国产一区二区三区四区五区 | 成人福利| 美女网站黄频 | 欧美日韩亚洲三区 | 成人在线视频网 | 成人午夜电影在线播放 | 国产资源第一页 | 国产馆av | 日韩精品视频中文字幕 | 亚洲一本大道在线 | 永久免费在线观看 | 日本国产精品视频 | 日皮视频免费观看 | 久久精品日韩 | 黄色毛片视频在线观看 | 亚洲无在线 | 国产一区二区三区在线看 | a级高清免费毛片av在线 | 欧美精品成人 | 久久免费99精品久久久久久 | 亚洲欧美成人网 | 成人在线视频免费观看 | 日韩精品一区二区三区中文在线 | 国产精品一区二区免费看 | 99精品国产一区二区青青牛奶 | 亚洲在线观看视频 | 精品999| 欧洲天堂网 | 成人一区二区三区四区 |