cas4.2.7学习(五)cas server 密码自定义加密

8 篇文章 1 订阅
本文详细介绍了如何在CAS(Central Authentication Service)项目中创建并使用自定义加密工具类,包括在项目中创建加密工具类、重写加密方法、在配置文件中注册自定义加密bean的过程。同时,对比了CAS自带的加密功能配置方法。
摘要由CSDN通过智能技术生成

1、创建自己的加密工具类,

在项目中随便创建一个包路径,在这个包下创建自己的加密工具类,并继承org.jasig.cas.authentication.handler.PasswordEncoder

这里可能会发现找不到org.jasig.cas.authentication.handler.PasswordEncoder,出现这种情况是因为没有对应的jar包,最简单也是最不容易出错的办法是将pom.xml 中

 <dependency>
            <groupId>org.jasig.cas</groupId>
            <artifactId>cas-server-webapp</artifactId>
            <version>${cas.version}</version>
            <type>war</type>
            <scope>runtime</scope>
        </dependency>

中的 <scope>runtime</scope>去掉。如果出现jar包冲突的问题,请查看我前面的笔记https://blog.csdn.net/zh_Json/article/details/83655813

2、重写encode方法,例如:

package com.demo.jiami;

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

public class PasswordEncrypt implements PasswordEncoder{

	@Override
	public String encode(String ssoToken) {
		try
	    {
	      byte[] _ssoToken = ssoToken.getBytes("ISO-8859-1");
	      String name = new String();
	     // char[] _ssoToken = ssoToken.toCharArray();
	      for (int i = 0; i < _ssoToken.length; i++) {
	          int asc = _ssoToken[i];
	          _ssoToken[i] = (byte) (asc + 27);
	          name = name + (asc + 27) + "%";
	       //   _ssoToken[i] = (char)((int)asc + 27);
	       //   System.out.println(_ssoToken[i]);
	      }
	      //String name = new String(_ssoToken);
	      return name;
	    }catch(Exception e)
	    {
	      e.printStackTrace() ;
	      return null;
	    }
	}

}

3、在deployerConfigContext.xml中配置自己的加密bean,指向自己的加密工具类

<bean id="passwordEncoder" class="com.demo.jiami.PasswordEncrypt" autowire="byName"></bean>

这个bean 位置可随意,只要在<beans></beans>里边即可。

特别说明,如果使用cas自带的加密功能,那么就不需要 自己写加密工具了,只需要配置一下cas.properties和deployerConfigContext.xml即可

如果在deployerConfigContext.xml里边不使用变量,则不需要配置cas.properties

<!--cas自带的密码加密器-->
<bean id="passwordEncoder"class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder"c:encodingAlgorithm="MD5" p:characterEncoding="ISO-8859-1" />

如果在cas.properties中配置加密方式,找到

#cas.authn.password.encoding.char=UTF-8
#cas.authn.password.encoding.alg=SHA-256

打开注释,配置加密方式:

cas.authn.password.encoding.char=UTF-8
cas.authn.password.encoding.alg=MD5

在deployerConfigContext.xml只需要配置:

<alias name="defaultPasswordEncoder" alias="passwordEncoder" />

即可,这样,加密方式就在 cas.properties中修改就行了

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值