MyBatis下标越界异常解决

当实体类中的属性存在了数据库中不存在的字段时,执行该实体类相关的mapper会报出下标越界异常(IndexOutBoundException)。集合除外。

问题出现原因:

使用Spring Security过程中,新建一个实体类并实现Spring Security提供的UserDetails接口,然后实现该接口下的所有方法(全部是getXXX())。

如下面代码所示:

public class TestUserDetails implements UserDetails {@Overridepublic Collection<? extends GrantedAuthority> getAuthorities() {throw new UnsupportedOperationException("Not yet implemented");}@Overridepublic String getPassword() {throw new UnsupportedOperationException("Not yet implemented");}@Overridepublic String getUsername() {throw new UnsupportedOperationException("Not yet implemented");}@Overridepublic boolean isAccountNonExpired() {throw new UnsupportedOperationException("Not yet implemented");}@Overridepublic boolean isAccountNonLocked() {throw new UnsupportedOperationException("Not yet implemented");}@Overridepublic boolean isCredentialsNonExpired() {throw new UnsupportedOperationException("Not yet implemented");}@Overridepublic boolean isEnabled() {throw new UnsupportedOperationException("Not yet implemented");}
}

由上可知,分别需要username、password、accountNonExpired、accountNonLocked、credentialsNonExpired、enabled属性以及authorities集合。

另外需要自己写getXX()方法,提供使用

在demo中,数据库中表的字段只有username、password、enabled。这样会导致实体类中的属性存在了数据表中不存在的字段,在执行Spring Security提供的接口UserDetailsService中的loadUserByUsername(String userName)时就会出现IndexOutBoundException异常。

而且在Spring Security执行登录验证的时候会检查实现了UserDetails的实现类中的isXXX() 的几个方法的返回值,isAccountNonExpired()代表账户是否过期、isAccountNonLocked()代表账户是否被锁定、isCredentialsNonExpired()代表验证是否过期,这几个方法必须有且

有返回值。否则登录不成功。

综上所述的解决办法是 删除多余的属性,并且将几个isXXX()方法的返回值return true;这样效果等同于屏蔽了对账户的判断。

MyBatis下标越界异常解决相关推荐

  1. 数组下标越界异常解决方法

    数组下标越界异常解决方法 参考文章: (1)数组下标越界异常解决方法 (2)https://www.cnblogs.com/GreenCode/p/7345508.html 备忘一下.

  2. 如何解决数组下标越界异常

    如何解决数组下标越界异常 今天在写接口的时候运行发现有一个数组的下标越界异常了, 检查了一下发现实在上面的数组中有一些字符串没有大写,造成跟下面的数组字符串不一样,所以导致了数组下标越界异常.

  3. Mybatis注解开发出现Type interface Mapper.StudentMapper is not known to the MapperRegistry异常解决办法

    Mybatis注解开发出现Type interface Mapper.StudentMapper is not known to the MapperRegistry异常解决办法 在核心配置文件中,配 ...

  4. ArrayIndexOutOfBoundsException数组下标越界异常的解决过程

    一. 异常示例 对于刚开始学习Java的大部分人来说,在使用数组的过程中,经常会遇到数组下标越界的异常.下面壹哥就以一个实际案例来给大家进行说明: public class ArrayTest {pu ...

  5. Mybatis异常解决

    Mybatis异常解决 Mapped Statements collection does not contain value for - 一定是这四步: mybatis的映射文件的命令空间与接口的全 ...

  6. Java初学最容易犯的错,数组下标越界异常怎么解决呢?

    数组下标越界是一个编程初学者最容易犯的错误. 以一个简单的一维数组为例: int a[10]:这是一个整型的数组a,有10个元素:a[0]-a[9],因为正确的下标应该是从0开始,到9结束,与生活习惯 ...

  7. JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)

    测试又报bug啦 接到测试小伙伴的问题,说是一个接口不返回数据了,好吧,虽然不是我写的接口任务落到头上也得解决,本地调试了一下,好家伙,直接抛了个异常出来,这又是哪位大哥喝醉了写的代码... Exce ...

  8. WEB站点使用企业库安全性异常解决办法

    WEB站点使用企业库安全性异常解决办法 我们在WEB站点使用企业库的时候,有时候会有如下的异常产生: 安全性异常     说明: 应用程序试图执行安全策略不允许的操作.要授予此应用程序所需的权限,请与 ...

  9. 记录一次cefsharp1输入法在win7下异常解决定位

    最近几天都被基于cefSharp封装的浏览器控件搞疯了!对于cefSharp基本满足当前所做项目的需求,但是有一个问题一直困扰我,那就是系统中偶尔会出现输入法不能转换到中文.而且这个问题似乎没有什么规 ...

最新文章

  1. Pandas选择一列或者多列数据
  2. 31天重构学习笔记3. 提升方法
  3. 如何安装Windows10+CentOS7双系统_自用成功版——注意看评论的注意事项
  4. android客户端访问服务端,服务端返回json数据
  5. css input光标粗细,如何用CSS原生属性caret-color改变input输入框光标颜色
  6. 嵊州D5T2 折纸 folding
  7. php开发客服系统(持久连接+轮询+反向ajax)
  8. ACM题目————STL练习之众数问题
  9. 十大最热门人工智能技术
  10. 非IE浏览器实现IE功能(浏览器加载OCX控件)——IE Tab
  11. 一完整的HTTP事务是怎样的过程
  12. c盘太小想扩容,合并硬盘分区的方法,硬盘合并分区的步骤
  13. php中判断是否为偶数,在PHP中检查偶数和奇数
  14. Python之列表(学习笔记)
  15. 3D模型欣赏:大眼短发战斗萝莉 游戏角色
  16. table数据刷新;v-if刷新el-table表格
  17. 书蕴——基于书评的人工智能推荐系统
  18. matlab ezplot fplot,[求助]fplot和ezplot功能一样啊?
  19. linux telnet成功显示什么_一文带你彻底理解 Linux 的各种终端类型及概念
  20. 在CSS布局中让Floats轻拂

热门文章

  1. fusioncharts java_FusionCharts在Java中的基本使用
  2. 智能会计成就价值财务
  3. Halcon标定板标定流程
  4. Java 游戏开发:关于Java面向对象的知识(一)
  5. p30pro升级鸿蒙后拍照,兄弟们!华为P30Pro拍照到底有多强,真的使用过才知道
  6. 关于padding,margin,width用百分比表示时以什么为基准
  7. 云虚拟主机建站新手图文教程
  8. Java访问OrientDB数据库实战教程
  9. Mac如何管理苹果电脑顶部菜单栏图标
  10. 大数据时代我们的隐私真不重要吗?