springboot集成shiro时认证出现报错Submitted credentials for token [org.apache.shiro.authc.UsernamePasswordToke

本文介绍了SpringBoot集成Shiro时可能出现的登录认证错误,详细梳理了Shiro密码验证的流程,包括controller中的登录处理和realm中的doGetAuthenticationInfo方法。错误通常源于未设置加密算法、加密参数不匹配或配置文件错误。特别是配置文件问题,如忘记设置customerRealm.setCredentialsMatcher(credentialsMatcher())会导致密码匹配失败。
摘要由CSDN通过智能技术生成

shiro密码验证的大致流程:

1. controller中login的时候

        UsernamePasswordToken token = new UsernamePasswordToken(account, password);
        try {
            SecurityUtils.getSubject().login(token);
        }

2. realm中调用doGetAuthenticationInfo

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authToken) throws AuthenticationException {
        String username = (String)authToken.getPrincipal();
        User user = userService.getUserByAccount(username);
        if (user == null) {
            throw new UnknownAccountException();
        }

        //交给AuthenticatingRealm使用CredentialsMatcher进行密码匹配,如果觉得人家的不好可以自定义实现
        /**
         * 这里传入的user信息,只是从数据库中查询到的结果,
         * shiro会将token中的明文,按照配置中的加密方式进行加密,然后进行匹配。
         * 有些教程,在这里将明文的pwd加密后传入,是没有必要的
         */
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值