【cas】常用的cas登录验证规则
来源:互联网 发布:影楼修片软件mac版 编辑:程序博客网 时间:2024/05/19 16:27
我们在运行简单的cas程序时,使用默认的登录的验证规则,用户名=密码,就会验证成功就可以访问受保护的资源了。但是,在项目中是要通过对数据库中的用户信息进行验证的。这里,来总结一下cas中数据库验证的两种方式。首先,修改配置文件deployerConfigContext.xml找到name="authenticationHandlers"的配置。将原有的配置注掉。原有的配置信息:这里的的class对应于cas源码中的类是指定了cas登录的验证规则为用户名=密码。
<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
接下来开始配置我们的数据库验证方式
一、QueryDatabaseAuthenticationHandler
在原有配置的list列表中天添加如下代码:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource" ></property> <property name="sql" value="select password from ta_allusers where userCode=? " ></property></bean>
这一段的配置指定了,通过配置的sql语句查询出来的password和你登录时输入的用户名的密码进行匹配,如果匹配可以成功,那么登录就可以成功了。当然只配置这个当然不可以,还不知道要去查询那个数据库呢不是。指定数据源。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <!--<property name="url" value="jdbc:mysql://localhost:3306/itoo_cloudroot" />--> <property name="url" value="jdbc:mysql://192.168.22.246:3306/itoo_cloudroot" /> <property name="username" value="authority" /> <property name="password" value="authority" /> </bean>
二、SearchModeSearchDatabaseAuthenticationHandler
通过这种方式来进行数据库验证,数据源的配置不变,只需要将authenticationHandlers配置的list换成下面的配置即可。
<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler"> <property name="dataSource" ref="dataSource"></property> <property name="tableUsers" value="ta_allusers"/> <property name="fieldUser" value="userCode"></property> <property name="fieldPassword" value="password"></property> </bean>
这种方式是通过指定数据库中的某张数据表,并且指定好用户名和密码的字段来进行验证。
三、自定义验证规则
以上是通过数据库进行验证的几种方式。那么,如果想要自定义验证,我们可以通过直接重写AbstractUsernamePasswordAuthenticationHandler类来实现。
public class myAuth extends AbstractUsernamePasswordAuthenticationHandler { @Override protected boolean authenticateUsernamePasswordInternal( UsernamePasswordCredentials credentials) throws AuthenticationException { final String username = credentials.getUsername(); final String password = credentials.getPassword(); StringBuffer sBuffer=new StringBuffer(username); if(sBuffer.reverse().toString().equals(password)){ return true; } return false; }}
同时需要将配置文件中的类改成自定义类的全限定名。
<bean class="com.wyy.auth.myAuth"></bean>
以上是cas进行登录验证的几种规则。最常用的还是数据库验证的两种方式。
1 0
- 【cas】常用的cas登录验证规则
- 定制CAS登录验证
- CAS 定制登录验证
- CAS自定义登录验证
- CAS 客户端登录验证
- 【cas】cas获取登录的用户名
- cas登录
- CAS验证
- CAS单点登录服务器端验证重写
- 改造CAS单点登录 --- 验证码
- [SSO单点登录]CAS 配置验证码
- cas之JDBC登录验证方式
- cas服务器登录页面添加验证码
- CAS 服务端登录验证流程(一)
- CAS 服务端登录验证流程(二)
- CAS 服务端登录验证流程(三)
- CAS 服务端登录验证流程(四)
- cas单点登录改为数据库验证用户
- dubbo学习之dubbo管理控制台装配及集成zookeeper集群部署(1)
- A Note on GEM5 - 0 Installation
- hdu 1789 Doing Homework again 贪心
- MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)
- [leetcode] Reverse Linked List II 链表反转
- 【cas】常用的cas登录验证规则
- 带你从零了解mysql
- 如果子结果编号为i,求其父节点编号
- Hibernate开发之数据检索方式
- 【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(二)
- 深夜支持现场解决软件问题纪实
- Codeforces 570C Replacement
- 游戏光枪坐标定位原理及算法
- vector使用需要注意的一些问题