CAS實現SSO 學習(四)

(四):實現基於數據庫的身份驗證

1.下載 Microsoft JDBC Driver for SQL Server。

(1)Microsoft JDBC Driver 4.0 for SQL Server 下載地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=11774

網站提供了兩種格式文件供下載,一種是自解壓的EXE格式文件,還有一種是tar.gz格式的壓縮文件。兩種格式選其一下載即可,經過解壓縮,可以得到兩個JAR格式文件:sqljdbc.jar與sqljdbc4.jar。

(2)由於本人使用的是SQL Server 2012,因此需將“sqljdbc4.jar”拷貝至“%TOMCAT_HOME%\webapps\cas\WEB-INF\lib”文件夾。

(3)在本系列第二部分曾經提及從CAS網站下載“cas-server-3.5.1-release.zip”並解壓縮。在解壓縮的文件下中找到“modules\cas-server-support-jdbc-3.5.1.jar”,將其一併拷貝至“%TOMCAT_HOME%\webapps\cas\WEB-INF\lib”文件夾。

 

2.創建用於身份驗證的數據庫

(1)啓動SQL Server Management Studio,新建一數據庫“UsersDB”,並在其中建立表“Users”,字段如下:

(2)在表中輸入若干測試數據.

3.配置CAS實現基於數據庫的身份驗證

(1)以管理員身份啓動文本編輯工具,打開“%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml”。找到下面的代碼

<span style="font-family:Microsoft YaHei;"><bean id="authenticationManager"
    class="org.jasig.cas.authentication.AuthenticationManagerImpl">
</span>

(2)在該段代碼前面插入 SQL Server JDBC 數據源配置信息:

<span style="font-family:Microsoft YaHei;">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
    <property name="url" value="jdbc:sqlserver://yoursqlurl;databaseName=UsersDB"></property>
    <property name="username" value="sa"></property>
    <property name="password" value="YourPassword"></property>
</bean>
</span>
如下圖所示:

(3)找到如下配置信息:

<span style="font-family:Microsoft YaHei;">
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

</span>

該配置信息使用SimpleTestUsernamePasswordAuthenticationHandler驗證用戶,即默認用戶名和密碼相同則驗證通過,用戶名密碼不同則登錄失敗。我們需要將其替換成基於數據庫驗證的配置信息。

首先將上面的配置信息註釋掉,並在其下面插入如下配置信息:

<span style="font-family:Microsoft YaHei;">
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
    <property name="sql" value="select Password from users where username=?" />
    <property name="dataSource" ref="dataSource" />
</bean>

</span>
說明:如果你安裝的是SQL Server 2012,那麼默認TCP/IP訪問協議不會打開,因此無法通過IP地址的方式訪問SQL Server數據,解決辦法就是啓動SQL Server配置管理器,並在裏面啓用TCP/IP,啓用後記得重新啓動SQL Server服務以使設置生效。如圖所示:



(4)保存對“%TOMCAT_HOME%\webapps\cas\WEB-INF\deployerConfigContext.xml”所做的修改。

(5)重新啓動 Tomcat 服務。

4.測試基於數據庫的身份驗證

從客戶端運行前面調試好的WebForm程序,輸入庫中配置的用戶名及密碼,測試是否登錄成功。如果一切配置正常,可以看到程序登錄後的界面如下圖:

參考:http://www.cnblogs.com/zhenyulu/archive/2013/01/26/2878271.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章