CAS-服务端数据库认证
数据认证需要相关的jar包:
cas-server-support-jdbc-x.x.x.jar MySQL-connector-Java-x.x.x-bin.jar
修改CAS Server的配置
通过数据库查询来验证用户名密码 修改cas server的配置 在tomcat_cas/webapps/cas/WEB_INF/deployerConfigContext.xml找到如下信息
deployerConfigContext.xml将如下信息替换为
com.MySQL.jdbc.Driver jdbc:mysql://localhost:3306/smtp root .,mlkjoiu987 如果你用了普通的加密,那么请加入一下标签 ##使用SHA1加密 至于参数值(Encoder采用的加密方式) MessageDigest messageDigest=MessageDigest.getInstance(this.encodingAlgorithm) 如果密码加密特别复杂,例如 SHA256(MD5(password)) 我们可以写一个实现类,实现org.jasig.cas.authentication.handler.PasswordEncoder接口
注意
1) 密码加密过程,如果不用,注释掉即可 2) QueryDatabaseAuthenticationHandler是cas-server-support-jdbc提供的查询接口,其中一个是通过配置一个SQL语句来查出密码,与所给密码匹配 3) sql语句就是查询哪一张表,本例根据t_user表的login-name字段查询密码,CAS会匹配用户用户输入的密码,如果匹配则通过。 4) passwordEncoder这个是处理密码的加密,如果想要你的应用中数据库保存的是加密过的,比如本例是使用MD5加密的。所以配置了MD5PasswordEncoder这个Handler,cas内置了MD5的功能所以只需要配置一下就可以了。如果在实际应用中使用的是公司自己的加密算法,那么就需要自己写一个handler来处理密码。实现方式也比较简单,创建一个类继承org.jasig.cas.authentication.handler.PasswordEncoder然后在encode方法中加密用户输入的密码然后返回即可。