shiro空指针_shiro自定义密码验证

package com.wsmail.shiroController;

import org.apache.shiro.authc.AuthenticationInfo;

import org.apache.shiro.authc.AuthenticationToken;

import org.apache.shiro.authc.UsernamePasswordToken;

import org.apache.shiro.authc.credential.SimpleCredentialsMatcher;

import org.apache.shiro.crypto.hash.Sha384Hash;

/**

* 自定义 密码验证类

* @author q

*

*/

public class CustomCredentialsMatcher extends SimpleCredentialsMatcher {

@Override

public boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) {

UsernamePasswordToken token = (UsernamePasswordToken) authcToken;

Object tokenCredentials = encrypt(String.valueOf(token.getPassword()));

Object accountCredentials = getCredentials(info);

//将密码加密与系统加密后的密码校验,内容一致就返回true,不一致就返回false

return equals(tokenCredentials, accountCredentials);

}

//将传进来密码加密方法

private String encrypt(String data) {

String sha384Hex = new Sha384Hash(data).toBase64();//这里可以选择自己的密码验证方式 比如 md5或者sha256等

return sha384Hex;

}

}

然后在 ShiroDbRealm类里 加个

/**

* 设定Password校验.

*/

@PostConstruct

public void initCredentialsMatcher() {

//该句作用是重写shiro的密码验证,让shiro用我自己的验证

setCredentialsMatcher(new CustomCredentialsMatcher());

}

同时在新增用户的时候密码保存用 如下方式 以此进行验证和数据库里的密码的一致

...

psu.setPwd(new Sha384Hash(psu.getPwd()).toBase64());

...

save(psu);

2

1

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2013-12-11 16:00

浏览 33382

评论

10 楼

amoyiki

2016-01-20

博主你好我想请问一下我用shiro整合ssh时想用密文(使用MD5加密)验证是老是报错。错误内容:

Struts Problem Report

Struts has detected an unhandled exception:

Messages:

Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - kh, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).

File:org/amoyiki/dao/UserDao.java(就是不能用hql去查询数据库里已经加密过的密码)

Stacktraces

org.apache.shiro.authc.AuthenticationException: Authentication failed for token submission [org.apache.shiro.authc.UsernamePasswordToken - kh, rememberMe=false]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).

其他配置文件应该都是没错的。

9 楼

zqb666kkk

2016-01-08

viking58 写道

博主你好,shiro的login需要明文密码,有没有方法使用加密过的密码登录,或者不需要密码登录?

可以啊

8 楼

viking58

2015-12-25

博主你好,shiro的login需要明文密码,有没有方法使用加密过的密码登录,或者不需要密码登录?

7 楼

java-lxm

2015-12-17

Authentication failed for token submission [cn.dreampie.shiro.CaptchaUsernamePasswordToken - admin1, rememberMe=false ()]. Possible unexpected error? (Typical or expected login exceptions should extend from AuthenticationException).

会报错

6 楼

zxjlwt

2015-11-19

学习了。

http://surenpi.com

5 楼

jacking124

2014-06-16

zqb666kkk 写道

jacking124 写道

zqb666kkk 写道

jacking124 写道

shiro的密码不可以为空吧!

可以啊

我这里为空直接报空指针了!

你代码怎么写的 肯定是你没处理好 空指针啊  如果你空的话相当于不做密码验证了 你直接跳过那个验证就行了

这种特殊情况就不能走加密验证

哦哦,明白!

4 楼

zqb666kkk

2014-06-16

jacking124 写道

zqb666kkk 写道

jacking124 写道

shiro的密码不可以为空吧!

可以啊

我这里为空直接报空指针了!

你代码怎么写的 肯定是你没处理好 空指针啊  如果你空的话相当于不做密码验证了 你直接跳过那个验证就行了

这种特殊情况就不能走加密验证

3 楼

jacking124

2014-06-13

zqb666kkk 写道

jacking124 写道

shiro的密码不可以为空吧!

可以啊

我这里为空直接报空指针了!

2 楼

zqb666kkk

2014-06-13

jacking124 写道

shiro的密码不可以为空吧!

可以啊

1 楼

jacking124

2014-06-13

shiro的密码不可以为空吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值