单点登录(三):自定义验证方式(数据库查询)和登录页修改

来源:互联网 发布:7u分享网络微信打不开 编辑:程序博客网 时间:2024/04/30 07:36
包括:
一.验证用户查询数据库
二.登录页的修改

一.验证用户查询数据库

我们之前所实现的都是使用admin/admin,那么实际使用中该如何查询数据库?
首先复习我们之前CAS的验证方式:

由此,我们知道,在最后springmvc为其注入SimpleTestUsernamePasswordAuthenticationHandler类来验证。
其实,CAS也提高了注入org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler,来让我们来查询数据库,十分的方便。
修改步骤:
1.在deployerConfigContext.xml文件中,有原来的定义方式
<bean id="authenticationManager"
        class="org.jasig.cas.authentication.AuthenticationManagerImpl">
<property name="authenticationHandlers">
            <list>
                  <bean   class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
           ......
那么,我们首先把他原来的注释掉。

2.在刚才注释的地方换成下述代码,修改成我们查询数据库的方式:
<bean class = "org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
    <property name="dataSource" ref="casDataSource" />
        <property name="sql" value="select password from user where username = ?" />  
         <!-- <property name="passwordEncoder" ref="myPasswordEncoder" />   -->
</bean>
接着在deployerConfigContext.xml的最后面加入下面的mysql配置即可。
<bean id="casDataSource"  
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
        <property name="driverClassName">  
            <value>com.mysql.jdbc.Driver</value>  
        </property> 
        <property name="url" value="jdbc:mysql://192.168.8.1:3306/whc_sso?useUnicode=true" />
        <property name="username">  
            <value>root</value>  
        </property>  
        <property name="password">  
            <value>123456</value>  
        </property>  
    </bean>

这样就可以做到基本的查询了,经过测试可以成功通过。

二.登录页的修改
对于登录页的修改,首先我们可以知道,CAS服务器返回的登录页的路径:/WebContent/WEB-INF/view/jsp/default/ui/casLoginView.jsp
然后我们就可以直接修改这个页面。暂不演示。
切忌:只改样式,像form表单这种保留原本的,避免出错。
0 0