Spring Security

Spring Security 实战干货——搞清楚UserDetails

老子叫甜甜 提交于 2020-10-23 00:03:22
1. 前言 前一篇介绍了 Spring Security 入门的基础准备。从今天开始我们来一步步窥探它是如何工作的。我们又该如何驾驭它。请多多关注公众号: Felordcn 。本篇将通过 Spring Boot 2.x 来讲解 Spring Security 中的用户主体 UserDetails 。以及从中找点乐子。 2. Spring Boot 集成 Spring Security 这个简直老生常谈了。不过为了照顾大多数还是说一下。集成 Spring Security 只需要引入其对应的 Starter 组件。 Spring Security 不仅仅能保护 Servlet Web 应用,也可以保护 Reactive Web 应用,本文我们讲前者。我们只需要在 Spring Security 项目引入以下依赖即可: <dependencies> <!-- actuator 指标监控 非必须 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- spring security starter 必须 --> <dependency> <groupId>org

阿里大热框架!Spring Security OAuth2.0认证授权开源笔记

感情迁移 提交于 2020-10-22 05:50:36
这一套笔记总共分为五份:第一份笔记讲述的是Spring Security OAuth2.0认证授权项目的理论基础,第二份笔记是整个项目的实战操作,最后三套讲述的是源码笔记(帮助大家去理解整套的项目) 下面我们一份一份的笔记来看,由于文章的篇幅有限,小编只能为大家展示完整的项目目录和部分内容( 整套笔记的完整获取方式我放在了文末! ) 第一份笔记:Spring Security OAuth2.0认证授权理论基础 1.基本概念 1.1.什么是认证 1.2什么是会话 1.2什么是授权 1.3授权的数据模型 1.4 RBAC 1.4.1 基于角色的访问控制 1.4.2基于资源的访问控制 2基于Session的认证方式 2.1认证流程 2.2.创建工程 2.2.1 创建maven工程 2.2.2 Spring 容器配置 2.2.3 servletContext配置 2.2.4加载Spring容器 2.3.实现认证功能 2.3.1 认证页面 2.3.2 认证接口 2.4.实现会话功能 2.5.实现授权功能 3.Spring Security快速上手 3.1 Spring Security介绍 3.2创建工程 3.2.1 创建maven工程 3.2.2 Spring容器配置 3.2.3 Servlet Context配置 3.2.4 加裁Spring容器 3.3认证 3.3.1 认证页面 3.3

一套完整的 后台管理系统,赚钱就靠它了!

一曲冷凌霜 提交于 2020-10-15 18:32:41
来源:cnblogs.com/huanzi-qch/p/11534203.html 作者:huanzi-qch 前言 这是一套简单通用的后台管理系统,主要功能有:权限管理、菜单管理、用户管理,系统设置、实时日志,实时监控,API加密,以及登录用户修改密码、配置个性菜单等。 技术栈 前端:layui java后端:SpringBoot + Thymeleaf + WebSocket + Spring Security + SpringData-Jpa + MySql 工程结构说明 java部分、html、js、css部分都是大目录下面按单表一个子目录存放 运行预览 效果先睹为快,具体介绍在下方,按功能点进行详情介绍 功能演示 登录 (为了方便演示,密码输入框的类型改成text)配置文件分支选择,dev环境无需输入验证码。 同时支持多种登录限制。 允许/禁止账号多人在线。 软删除 限制登录IP地址 账号过期 更多登录限制,还可以继续扩展。 系统设置 一下简单的系统属性设置,想支持更多的配置可自行扩展(比如这里的:用户管理初始、重置密码)。 系统设置新增部分功能,详见文末“补充更新” 菜单管理 菜单管理是一棵layui的Tree 权限管理 增删改查 动态权限加载 权限的加载并不是写死在代码,而是动态从数据库读取,每次调用save方法时更新权限集合。 1、妲己是ROLE_USER权限

10k+点赞的Spring Boot权限管理系统竟然出了详细教程!爱了!

北战南征 提交于 2020-10-12 13:54:29
eladmin 是一款基于 Spring Boot 2.1.0 、 Jpa、 Spring Security、redis、Vue 的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由。 这个开源项目基本稳定,并且后续作者还会继续优化。完全开源!这个真的要为原作者点个赞,如果大家觉得这个项目有用的话,建议可以稍微捐赠一下原作者支持一下。后端整理代码质量、表设计等各个方面来说都是很不错的。前后端分离,前端使用的是国内常用的 vue 框架,也比较容易上手。 后台首页 角色管理页面 另外,作者最近还提供了一份详细的文档帮助小伙伴们学习这个项目。 文档从环境搭建到后端每一块的详细设计都有涵盖,非常适合拿来学习! 如何获取项目地址和文档地址? 扫描关注我朋友的公众号后回复“ 004 ”即可! 来源: oschina 链接: https://my.oschina.net/u/4364002/blog/4669964

Alibaba SpringCloud手抄本,啃完秒杀面试官

五迷三道 提交于 2020-10-12 04:02:56
作为Java语言的落地微服务框架,Spring Cloud已经在各大企业普遍应用,各大云厂商也支持Spring Cloud微服务框架的云产品。可以说,Spring Cloud微服务框架已经应用到了各大行业之中,并成为Java开发者的必备技能之一, 熟练掌握Spring Cloud是面试者的加分项。Spring Cloud由Spring Cloud社区维护,并且在Pivatol和Nettlix两大公司的推动下飞速发展。随着Eureka的闭源,虽然Netflix OSS等组件进入维护期,不再提供新功能,但SpringCloud微服务框架并没有受到显著影响,而是被越来越多的企业和开发者所接受。阿里巴巴推出的Nacos和Sentinel等组件已经加入Spring Cloud 孵化器项目,未来极有可能替代NetlixOSS,因此Spring Cloud是一个极具生 命力的微服务框架。 今天这份学习笔记来自于Alibaba SpringCloud生态系统,笔记全面涵盖了通过Spring Cloud 构建微服务的相关知识点:微服务架构和Spring Cloud、通过Spring Cloud 构建微服务的准备工作、以案例为切入点,讲解了通过Spring Cloud构建微服务的基础组件,包括Eureka、Ribbon、 Feign、Hystrix、Zul、Gateway、Consul、Config

Spring Boot + Spring Security添加记住我功能

我的梦境 提交于 2020-10-06 01:40:05
功能: 当用户勾选了记住我选项并登录成功后,Spring Security会生成一个token标识,然后将该token标识持久化到数据库,并且生成一个与该token相对应的cookie返回给浏览器。当用户过段时间再次访问系统时,如果该cookie没有过期,Spring Security便会根据cookie包含的信息从数据库中获取相应的token信息,然后帮用户自动完成登录操作 注:本博文在 Spring Boot+Spring Security图形验证码 的基础上来添加记住我的功能。 引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> Spring Security的记住我功能的实现需要使用数据库来持久化token。 建立表: CREATE TABLE persistent_logins ( username VARCHAR (64) NOT NULL, series VARCHAR (64

Spring Security 中如何让上级拥有下级的所有权限?

为君一笑 提交于 2020-10-05 06:18:29
本文基于当前 Spring Security 5.3.4 来分析,为什么要强调最新版呢?因为在在 5.0.11 版中,角色继承配置和现在不一样。旧版的方案我们现在不讨论了,直接来看当前最新版是怎么处理的。 1.角色继承案例 我们先来一个简单的权限案例。 创建一个 Spring Boot 项目,添加 Spring Security 依赖,并创建两个测试用户,如下: @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("javaboy") .password("{noop}123").roles("admin") .and() .withUser("江南一点雨") .password("{noop}123") .roles("user"); } 然后准备三个测试接口,如下: @RestController public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; } @GetMapping("/admin/hello") public String

SpringSceurity(3)---图形验证码功能实现

时光毁灭记忆、已成空白 提交于 2020-10-04 15:00:24
SpringSceurity(3)---图形验证码功能实现 有关springSceurity之前有写过两篇文章: 1、 SpringSecurity(1)---认证+授权代码实现 2、 SpringSecurity(2)---记住我功能实现 这篇我们来讲图形验证码功能实现。 一、思路 我整理下springSceurity整合图形验证码的大致思路: 1、首先对于验证码本身而言,应该有三部分组成 1、存放验证码的背景图片 2、验证码 3、验证码的有效时间。 2、对于springSceurity而言,验证码的执行校验顺序肯定是在UsernamePasswordAuthenticationFilter之前的,因为如果验证码都不对,那么 根本都不需要验证账号密码。所以我们需要自定义一个验证码过滤器,并且配置在UsernamePasswordAuthenticationFilter之前执行。 3、对于获取验证码的接口,肯定是不需要进行认证限制的。 4、对于获取验证码的接口的时候,需要把该验证码信息+当前浏览器的SessonId绑定在一起存在Seesion中,为了后面校验的时候通过SessonId 去取这个验证码信息。 5、登陆请求接口,除了带上用户名和密码之外,还需要带上验证码信息。在进入验证码过滤器的时候,首先通过SessonId获取存在Sesson中的 验证码信息

Spring Security 实战干货:UsernamePasswordAuthenticationFilter 源码分析

走远了吗. 提交于 2020-10-04 00:21:14
1. 前言 欢迎阅读 Spring Security 实战干货系列 文章,在集成 Spring Security 安全框架的时候我们最先处理的可能就是根据我们项目的实际需要来定制注册登录了,尤其是 Http 登录认证。根据以前的 相关文章 介绍, Http 登录认证由过滤器 UsernamePasswordAuthenticationFilter 进行处理。我们只有把这个过滤器搞清楚才能做一些定制化。今天我们就简单分析它的源码和工作流程。 2. UsernamePasswordAuthenticationFilter 源码分析 UsernamePasswordAuthenticationFilter 继承于 AbstractAuthenticationProcessingFilter (另文分析)。它的作用是拦截登录请求并获取账号和密码,然后把账号密码封装到认证凭据 UsernamePasswordAuthenticationToken 中,然后把凭据交给特定配置的 AuthenticationManager 去作认证。源码分析如下: public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter { // 默认取账户名、密码的key public

Spring Security 实战干货:登录成功后返回 JWT Token

旧时模样 提交于 2020-10-03 01:42:53
1. 前言 欢迎阅读 Spring Security 实战干货 系列文章,上一文 我们实现了 JWT 工具。本篇我们将一起探讨如何将 JWT 与 Spring Security 结合起来,在认证成功后不再跳转到指定页面而是直接返回 JWT Token 。本文的 DEMO 可通过文末的方式获取 2. 流程 JWT 适用于前后端分离。我们在登录成功后不在跳转到首页,将会直接返回 JWT Token 对(DEMO中为 JwtTokenPair ),登录失败后返回认证失败相关的信息。 3. 实现登录成功/失败返回逻辑 如果你看过 Spring Security 实战干货:玩转自定义登录 将非常容易理解下面的做法。 3.1 AuthenticationSuccessHandler 返回 JWT Token AuthenticationSuccessHandler 用于处理登录成功后的逻辑,我们编写实现并注入 Spring IoC 容器: /** * 处理登录成功后返回 JWT Token 对. * * @param jwtTokenGenerator the jwt token generator * @return the authentication success handler */ @Bean public AuthenticationSuccessHandler