`

CAS实战(cas-server-3.3.4 + cas-client-3.1.3)四

    博客分类:
  • CAS
阅读更多

CASPasswordEncoder.java

package org.kr.test.casTest.sha;

 

import org.jasig.cas.authentication.handler.PasswordEncoder;

 

public class CASPasswordEncoder implements PasswordEncoder {

 

    public static final String ENCRYPT_KEY = "密钥";

   

   

    public String encode(String strSource){

       String strR = null;

       try {

           strR = DigestUtil.digestString(strSource, "SHA");

       } catch (Exception e) {

           e.printStackTrace();

       }

       return strR;

    }

 

}

 

 

把包org.kr.test.casTest.sha导出为caspasskey.jar,拷贝到cas/WEB-INF/lib目录下

打开文件cas/WEB-INF/deployerConfigContext.xml,找到

<bean

class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

 

 

将它替换为

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

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

  <property name="sql" value="select 密码 from 用户表 where lower([用户名]) = UPPER(?)" /> 

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

</bean>

 

 

注意,上面的 bean配置是在IDcredentialsToPrincipalResolversBEAN  property list 里的,下面这个bean要在credentialsToPrincipalResolvers BEAN外面定义

<bean id="myPasswordEncoder"

class="org.kr.test.casTest.sha.CASPasswordEncoder"/>  <!--这是我上文自定义的加密类-->

 

找到

<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl" />

 

在它的下方添加以下数据源代码

<bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName">

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

</property>

<property name="url">

<value>jdbc:mysql://数据库地址:3306/数据库名</value>

</property>    

<property name="username">

<value>数据库访问用户名</value>    

</property>

<property name="password">

<value>数据库访问密码</value>

</property>

</bean>

 

 

到此,数据库与cas服务端的连接已完成,登入http://localhost:8080/cas/login,用英文的用户名测试登入是否成功

服务器端配置到此结束

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics