基于CAS实现单点登录(三)

        (二)中我们完成了CAS SERVER 的部署,并且可以使用 admin/admin 登录进去了。这仅仅是简单的身份验证,实际应用中需要读取数据库的数据,下面我们来进一步配置 CAS 服务器怎么读取数据库的信息进行身份验证。

        修改 tomcat/webapps/cas/WEB-INF/deployerConfigContext.xml 文件。

第一步

        找到92行处,注释掉 SimpleTestUsernamePasswordAuthenticationHandler 这个验证 Handler,这个比较简单,只是判断用户名、密码相同即可通过,这个不能再实际应用中使用。并在下面添加如下代码:

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

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

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

    <property name="passwordEncoder"  ref="MD5PasswordEncoder" />

</bean>

第二步

        在末尾处添加

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource" >

        <property  name="driverClassName" >

                <value>com.mysql.jdbc.Driver</value>

        </property>

         <property  name="url" >                         

            <value>jdbc:mysql:192...........</value>

        </property> 

        <property  name="username" > 

            <value>bhz</value> 

        </property>

        <property  name="password" > 

             <value>bhz</value> 

        </property>

</bean>

<bean id="MD5PasswordEncoder"  class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"  >

        <constructor-arg index="0">

                <value>MD5</value>

        </constructor-arg>

</bean>

第三步

        最后复制 cas-server-3.4.3/modules/cas-server-support-jdbc-3.4.3.1.jar 和 mysql 驱动到 tomcat/webapps/cas/WEB-INF/lib 目录中。

配置解释

       QueryDatabaseAuthenticationHandler是 cas-server-support-jdbc 提供的查询接口其中之一,QueryDatabaseAuthenticationHandler 是通过配置一个sql查询查出密码,与所给的密码进行匹配。

        sql语句就是查询哪一张表,本例根据 user 表的 username 字段查询密码,CAS 会匹配用户输入的密码,如果匹配则通过;根据实际情况自行进行更改即可。

        passwordEncoder,处理密码的加密,看你的应用中数据库保存的是明码还是加密过的,本例是使用MD5 加密,配置MD5PasswordEncoder这个 Handler ,cas 内置了 MD5 加密功能,所以只需配置即可。如果实际应用中使用公司自己的加密算法那么就需要自己写一个handler来处理密码,实现方式比较简单,创建一个类继承 "org.jasig.cas.authentication.handler.PasswordEncoder ,然后在 encode 方法中加密用户输入的密码然后返回即可。

第四步

        我们最后在数据库设置用户名、密码,然后通过cas系统进行登录。若根据自定义用户名、密码登录成功,则至此为止cas服务端配置结束。

猜你喜欢

转载自blog.csdn.net/weixin_34195364/article/details/87637129