cas security等权限框架的密码加密处理异同

cas security等权限框架的密码加密处理异同

 

 

 

cas服务端加密的处理:

(其他的第三方框架加密用法类似比如security登陆)

 

1,需要自己写一个类实现cas的加密接口PasswordEncoder即可,纳入spring容器管理

2,在需要配置 加密的地方直接引用这个bean即可

 

登陆的时候输入用户名,密码由于直接调用cas的登陆请求,所以数据直接传到框架---》由于配置了加密方式,cas是在QueryDatabaseAuthenticationHandler进行和

数据查出的密码比对的时候加密的,用的加密算法就是在查询sql中引用的加密bean(注意这个加密算法对sql查出的不会加密,数据库存的就是加好密的),

p:passwordEncoder-ref是告诉cas数据库中密码的加密方法,所以等下传进来的密码自动根据这个加密

 

 

 

<bean id="myPasswordEncoder" class="com.esteel.cas.MyPasswordEncoder"/>

 

 

<bean id="dbAuthHandler"

      class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"

      p:dataSource-ref="casDataSource"

      p:sql="select trade_passwd from vw_member where CUSTOMER_STATUS='A' and CUS_USER_STATUS='A' and cus_user_id = ?"

 p:passwordEncoder-ref="myPasswordEncoder"

 />

 

 

 

/*    */ package com.esteel.cas;

/*    */ 

/*    */ import java.io.UnsupportedEncodingException;

/*    */ import java.security.MessageDigest;

/*    */ 

/*    */ public class MyPasswordEncoder implements org.jasig.cas.authentication.handler.PasswordEncoder

/*    */ {

/*    */   public String encode(String rawPassword)

/*    */   {

/*    */     try

/*    */     {

/* 12 */       return createEncryptPSW(rawPassword);

/*    */     }

/*    */     catch (Exception e) {

/* 15 */       e.printStackTrace();

/*    */     }

/* 17 */     return null;

/*    */   }

/*    */   

/*    */   public static String createEncryptPSW(String psw)

/*    */     throws Exception

/*    */   {

/* 23 */     MessageDigest messagedigest = null;

/*    */     try {

/* 25 */       messagedigest = MessageDigest.getInstance("MD5");

/* 26 */       messagedigest.update(psw.getBytes("UTF8"));

/* 27 */       byte[] abyte0 = messagedigest.digest();

/* 28 */       return new BASE64Encoder().encode(abyte0);

/*    */     } catch (java.security.NoSuchAlgorithmException e) {

/* 30 */       throw new Exception("NoSuchAlgorithmException!", e);

/*    */     } catch (UnsupportedEncodingException e) {

/* 32 */       throw new Exception("UnsupportedEncodingException!", e);

/*    */     }

/*    */   }

/*    */ }

 

 

 

 

 

 

 

 

 

security登陆:

 

 

 

 

1 <bean id="daoAuthenticationProvider"  

        class="org.springframework.security.providers.dao.DaoAuthenticationProvider"

2     p:passwordEncoder-ref="passwordEncoder"//在提交的时候security就进行密码加密即使开发者都看不到,cas这块是在要比对的时候才加密,之前的明文还是可以看到

3     p:userDetailsService-ref="userDetailsService"/>userDetailsService属性也是指向了我们配置的Bean, 它负责从数据库中读取用户的信息

4 <bean id="passwordEncoder"

5     class="org.springframework.security.providers.encoding.Md5PasswordEncoder"/>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值