shiro与redis整合出现 class java.util.HashMap must has getter for field: id We need a field to identify..

shrio 专栏收录该内容
1 篇文章 0 订阅

问题

shiro与redis整合时出现如下异常,这个大概是说缺少id或者authCacheKey 字段属性

class java.lang.String must has getter for field: authCacheKey or id\nWe need a
        field to identify this Cache Object in Redis. So you need to defined an id field
        which you can get unique id to identify this principal. For example, if you use
        UserInfo as Principal class, the id field maybe userId, userName, email, etc. For
        example, getUserId(), getUserName(), getEmail(), etc.\nDefault value is
        authCacheKey or id, that means your principal object has a method called
        \"getAuthCacheKey()\" or \"getId()\""

原因

这个问题出现的原因之一是我们在进行doGetAuthenticationInfo 用户认证时,new SimpleAuthenticationInfo(User,pwd,this.getClass().getName());这里传递的User实体对象中,没有id或者authCacheKey 属性,根据异常描述,可能有userId, userName, email, etc.这些属性也行,我解决的方案是加id属性就没有出错了

解决方法

new SimpleAuthenticationInfo(User,pwd,this.getClass().getName())传入的user实体中加上id属性

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值