![](https://img-blog.csdnimg.cn/20200129230141722.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
安全框架
文章平均质量分 94
安全框架相关:Shiro、SpringSecurity
九月清晨柳成荫
磨砺修仙,法力无边。
展开
-
SpringBoot - SpringSecurity结合JWT的身份验证及动态权限解决方案
花了点时间写了一个SpringSecurity集合JWT完成身份验证的Demo,并按照自己的想法完成了动态权限问题。在写这个Demo之初,使用的是SpringSecurity自带的注解权限,但是这样权限就显得不太灵活,在实现之后,感觉也挺复杂的,欢迎大家给出建议。Demo下载地址,见文末。JWT是什么可以参考我另一篇博文:浅谈JWT身份认证及其优缺点认证流程及授权流程我画了个建议的认证授权流程图,后面会结合代码进行解释整个流程。一、登录认证阶段实现SpringSecurity的UsernameP原创 2021-03-28 03:01:01 · 2319 阅读 · 0 评论 -
浅谈JWT身份认证及其优缺点
一、登录模式在介绍JWT之前,我要先介绍一下常见的几种登录模式。1、单一服务器模式(Session)我们登录认证成功之后,将用户信息就存放在服务端(Session),然后将其对应的session_id存储在客户端(Cookie),从Cookie中取出session_id,服务端就可以根据这个session_id获取对应的Session,从而获取存储用户信息。其优点是:Session自动续期,用户体验较好其缺点是:①没有分布式架构,无法支持横向扩展。即分布式架构的情况下,其他服务器是没有办法获取到原创 2021-03-27 18:50:56 · 5578 阅读 · 3 评论 -
SpringBoot - 整合SpringSecurity
一、引入相关依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version></par...原创 2020-03-29 15:48:24 · 711 阅读 · 1 评论 -
SpringBoot - 整合Shiro
一、引入相关依赖后面两个依赖可以不引入,还没有使用过Redis来做Shiro的缓存。后续如果有用到,可能会更新到博文。<!-- Shiro --><dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId>...原创 2020-03-26 11:48:57 · 305 阅读 · 0 评论 -
SpringSecurity - 基于角色的访问控制RBAC
为什么要进行访问控制为了屏蔽无关人员操作系统的某个功能,防止误操作产生的垃圾数据或数据丢失。以电商后台为例,负责商品相关的工作人员,不允许他去操作订单相关的内容。同时,负责订单相关的工作人员,也不允许他去操作商品相关的内容。如果不进行权限控制,如果某一次,负责订单的工作人员去尝试操作商品相关的内容,就可能会造成垃圾数据产生(如发布一个错误的商品信息)或是数据丢失(删除了某个商品信息)的问题。...原创 2020-02-22 15:10:59 · 963 阅读 · 1 评论 -
SpringSecurity - 使用matches方法匹配原密码来修改密码
业务需求:修改密码,要求输入原密码和新密码进行修改密码。原密码因为使用SpringSecurity中的PasswordEncoder的encode方法进行hash加密了,但我们表单传到后端的是没加密的密码。比如密码是123456,加密后是$10$qRyhbnCnQUkLPiX4J1GdwuaFOrLbWqSfw1mzE7/d7PxgX9Pc83rOq这时,从数据库获取的是加密后的密码,要与...原创 2020-02-07 22:47:52 · 4381 阅读 · 1 评论 -
SpringSecurity - 登录注册加密/登录拦截/失败信息回显详解(慢步骤解析)
配置文件中form-login标签详解login-page // 自定义登录页面的url,例如login.htmllogin-processing-url // 登录请求拦截的url,即form表单提交的url,默认值是/login// 以下2个需要配合使用,如果需要认证成功跳转的url,则always-use-d...原创 2020-01-24 01:05:38 · 3940 阅读 · 1 评论 -
SpringSecurity - 简介及简单配置登录与注册
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI 和AOP(面向切面编程)功能为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。认证是为用户建立一个他所声明的主体。主体一般是指用户,设备或可...原创 2019-10-28 01:44:11 · 991 阅读 · 0 评论 -
Shiro - 散列密码与权限缓存
散列密码1.在保存用户时,给用户密码进行加密处理public void saveEmployee(Employee employee) { // 把密码进行加密 Md5Hash md5Hash = new Md5Hash(employee.getPassword(),employee.getUsername(),2); employee.setPassword(m...原创 2019-09-09 17:17:44 · 163 阅读 · 0 评论 -
Shiro - Web.Maven项目使用Shiro进行登录授权
当我们在控制器方法写了 @RequiresPermissionsShiro在访问时, 就会判断有没有该权限,如果没有,就不会执行对应方法实现过程1.创建角色、权限表及它们之间的关系中间表角色:权限:关系:2.在配置文件当中添加Shiro注解扫描<!-- 配置为true即使用cglib继承的方式, false为jdk的接口动态...原创 2019-09-09 17:12:08 · 248 阅读 · 0 评论 -
Shiro - Web.Maven项目使用Shiro进行登录认证
登录认证一、添加pom依赖<!-- Shiro --><dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version>...原创 2019-09-09 16:53:10 · 558 阅读 · 0 评论 -
Shiro - 安全框架核心类及相关概念概述
Apache Shiro是Java的一个安全框架1.Shiro是一个强大的简单易用的Java安全框架,主要用来更便捷的认证、授权、加密、会话管理、与Web集成、缓存等2.Shiro使用起来小而简单3.spring中有spring security ,是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。4.shiro不依赖于spring,shiro不仅可以实现web...原创 2019-09-09 16:08:40 · 584 阅读 · 0 评论