创建用户pojo对象

这里直接实现SpringSecurity的用户对象接口,并添加角色集合私有属性。注意接口属性都要标记不参与json的处理

@Data
public class SysRole implements GrantedAuthority {private Integer id;private String roleName;private String roleDesc;
}

创建角色pojo对象

这里直接使用SpringSecurity的角色规范,我们实现UserDetails的类型

@Data
public class SysUser implements UserDetails {private Integer id;private String username;private String password;private Integer status;private List<SysRole> roles;@JsonIgnore@Overridepublic Collection<? extends GrantedAuthority> getAuthorities() {return roles;}@Overridepublic String getPassword() {return password;}@Overridepublic String getUsername() {return username;}@JsonIgnore@Overridepublic boolean isAccountNonExpired() {return true;}@JsonIgnore@Overridepublic boolean isAccountNonLocked() {return true;}@JsonIgnore@Overridepublic boolean isCredentialsNonExpired() {return true;}@JsonIgnore@Overridepublic boolean isEnabled() {return true;}
}

提供角色mapper接口

public interface RoleMapper extends Mapper<SysRole> {@Select("SELECT r.id, r.role_name roleName, r.role_desc roleDesc " +"FROM sys_role r, sys_user_role ur " +"WHERE r.id=ur.rid AND ur.uid=#{uid}")public List<SysRole> findByUid(Integer uid);
}

提供用户mapper接口

这里就用到了Mybatis的一对多进行操作

public interface UserMapper extends Mapper<SysUser> {@Select("select * from sys_user where username = #{username}")@Results({@Result(id = true, property = "id", column = "id"),@Result(property = "roles", column = "id", javaType = List.class,many = @Many(select = "com.itheima.mapper.RoleMapper.findByUid"))})public SysUser findByName(String username);
}

提供认证service接口

@Service
@Transactional
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {return userMapper.findByUsername(s);}
}

SpringSecurity集中式整合之使用数据库数据实现认证相关推荐

  1. SpringSecurity集中式整合之授权操作

    在启动类中把加密对象放入IOC容器 @SpringBootApplication @MapperScan("com.leon.mapper") public class Secur ...

  2. SpringSecurity集中式整合之加入jsp

    整合认证第二版 加入jsp,使用自定义认证页面 说明 SpringBoot官方是不推荐在SpringBoot中使用jsp的,那么到底可以使用吗?答案是肯定的! 不过需要导入tomcat插件启动项目,不 ...

  3. springboot整合poi读取数据库数据和图片动态导出excel

    springboot整合poi读取数据库数据和图片动态导出excel 第一次操作 话不多说就直接上代码 实现代码 需要的依赖 <dependency><groupId>org. ...

  4. 集中式整合之编写springsecurity配置类

    提供SpringSecurity配置类 @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity(securedEnabled=tru ...

  5. 集中式整合之加入springsecurity

    创建工程并导入jar包 先只导入SpringBoot <parent><groupId>org.springframework.boot</groupId>< ...

  6. 现代银行集中式业务系统及数据整合

    随着互联网和移动互联网的普及,互联网金融也日益进入人们的日常生活.当前互联网金融方兴未艾,各种新颖高效的金融产品层出不穷.随之而来的是日益激烈的竞争.在这次金融革新的大潮中,传统银行暂时处于相对保守的 ...

  7. 2-10-分布式应用与集中式应用

    分布式数据应用 定义:是指数据存放在计算机网络的不同场地的计算机中,每一场地都有自治处理能力并完 成局部应用:而每一场地也参与(至少一种)全局应用程序的执行,全局应用程序可通过网络 通信访问系统中的多 ...

  8. 集中式版本控制与分布式版本控制

    文章目录 集中式版本控制 分布式版本控制 引用 集中式版本控制 所有的版本数据都存在服务器上,用户的本地设备就只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或 ...

  9. 2021年大数据ELK(一):集中式日志协议栈Elastic Stack简介

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.简介 二.ELK 协议栈介绍及体系结构 三.集中式日志协议栈 ...

最新文章

  1. Object类 任何类都是object类的子类 用object对象接收数组 object类的向上向下转型...
  2. PHP内核介绍及扩展开发指南—高级主题
  3. 关于在pycharm下提示ModuleNotFoundError: No module named 'XXX' 的一种可能
  4. erlang虚拟机精要(1)-运行时系统简介
  5. 邮件服务器之微软Exchange server (转)
  6. 解决Too many open files问题
  7. 如何实现用户通信授权的可信、可知、可追溯?——通信授权服务技术解读
  8. (软件工程复习核心重点)第三章需求分析-第一节:需求分析相关概念
  9. 活动预告丨openGauss西安Meetup来啦!本周五见!
  10. 小熊派IoT开发板系列教程正式发布——免费学习
  11. C语言printf函数详解和示例
  12. 得到多组单选框的值_多组学如何构建预后预测模型,还发了7分+?
  13. 如何产生好的词向量?
  14. 【转】初试JNI Java与C/C++交互
  15. 设计实例_Python程序设计实例教程课后习题参考答案
  16. 【Prison Break】第五天(4.1)
  17. mindoc制作思维导图
  18. php正则表达式后向引用和贪婪模式
  19. C/C++刁钻问题各个击破之细说sizeof .
  20. firefox 浏览器证书问题

热门文章

  1. 20135313_exp5
  2. c# Invoke和BeginInvoke 区别
  3. IntellIJ IDEA 配置 Maven 以及 修改 默认 Repository
  4. 织梦DedeCMS自定义表单限制IP24小时只能提交多少次
  5. mini2440的时钟
  6. 高质量C /C编程指南---附录B :C /C试题和谜底
  7. C# StatusStrip状态栏 例程
  8. Properties类详细解析
  9. 0079-简单的循环
  10. 设计模式五: 原型模式(Prototype)