![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Security
Andy2019
这个作者很懒,什么都没留下…
展开
-
SpringBoot - 安全管理框架Spring Security使用详解(11)-获取当前用户的用户名、id
有时我们需要获取当前登录的用户信息(比如用户名),通常有如下几种方式来实现。方法1:通过 Authentication.getPrincipal() 获取用户信息(1)通过Authentication.getPrincipal()可以获取到代表当前用户的信息,这个对象通常是UserDetails的实例。通过UserDetails的实例我们可以获取到当前用户的用户名、密码、角色等信息。 Spring Security使用一个Authentication对象来描述当...转载 2020-06-07 06:00:49 · 5247 阅读 · 1 评论 -
SpringBoot - 使用Spring Security实现OAuth2授权认证教程
一、OAuth 2 介绍1,什么是 OAuth 2?OAuth是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像、照片、视频等),而在这个过程中无须将用户名和密码提供给第三方应用。实现这一功能是通过提供一个令牌(token),而不是用户名和密码来访问他们存放在特定服务提供者的数据。 每一个令牌授权一个特定的网站在特定的时段内访问特定的资源。这样,OAuth让用户可以授权第三方网站灵活地访问存储在另外一些资源服务器的特定信息,而非所有内容。目前主流的qq,微...转载 2020-06-07 05:59:40 · 1888 阅读 · 2 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(10)-通过注解配置方法安全
在之前的文章样例中,认证和授权都是基于URL的。开发者也可以通过注解来灵活地配置方法安全,下面通过样例进行演示。十、通过注解配置方法安全1,样例代码(1)首先我们要通过@EnableGlobalMethodSecurity注解开启基于注解的安全配置:@EnableGlobalMethodSecurity 注解参数说明:prePostEnabled = true会解锁@PreAuthorize和@PostAuthorize两个注解。顾名思义,@PreAuthori...转载 2020-06-06 07:25:03 · 445 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(9)-密码加密配置
在之前的文章中密码都是使用明文的方式进行存储,但这样会有很大的安全隐患。所以正常做系统时,密码都要加密处理。而在Spring Boot中配置密码加密非常容易,下面通过样例进行演示。九、密码加密配置1,样例代码(1)要配置密码加密只需要修改两个地方。首先要修改HttpSecurity配置中的PasswordEncoder这个Bean的实现,这里我们采用BCryptPasswordEncoder加密方案。Spring Security提供了多种密码加密方案,官方推荐使用...转载 2020-06-06 07:24:26 · 869 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(8)-配置多个HttpSecurity
在之前的文章中我们都只配置一个HttpSecurity,如果业务比较复杂,我们也可以配置多个HttpSecurity,实现对WebSecurityConfigurerAdapter的多次扩展。八、配置多个 HttpSecurity1,样例代码(1)配置多个HttpSecurity时,MultiHttpSecurityConfig不需要继承WebSecurityConfigurerAdapter,而是在MultiHttpSecurityConfig中创建静态内部类继承...转载 2020-06-06 07:23:54 · 681 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(7)-注销登录配置
默认情况下,Spring Security提供了注销接口是/logout,访问这个接口即可注销当前登录用户并且自动跳转到登录页。如果需要修改注销接口,或者想在注销时做一些业务逻辑,或者注销后不是跳转到登录页而是返回一段JSON提示,只需在一些简单配置即可。七、注销登录配置1,样例代码首先修改Spring Security配置,增加相关的自定义配置代码:开启并设置注销登录的URL。 在注销是做一些数据清除工作。 注销后返回一段JSON提示,而是不是跳转到登录页。...转载 2020-06-06 07:23:21 · 485 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用(6)-自定义登录页、接口、结果
在之前的所有样例中,登录表单一直都是使用Spring Security提供的默认登录页,登录成功后也是默认的页面跳转。有时我们想要使用自定义的登录页,或者在前后端分离的开发方式中,前后端的数据交互通过JSON进行,这时登录成功后就不是页面跳转了,而是一段JSON提示。下面通过样例演示如何进行登录表单的个性化配置。六、自定义登录页面、登录接口、登录成功或失败的处理逻辑1,样例代码(1)首先修改Spring Security配置,增加相关的自定义代码:将登录页改成使用自定义...转载 2020-06-06 07:22:48 · 485 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(5)-角色继承
之前的文章中,各个角色之间不具备任何关系,但一般来说角色之前是有关系的,例如ROLE_admin一般既有admin的权限,又具有user的权限。下面介绍如何配置这种角色之间相互继承的关系。五、角色继承1,配置角色关系要配置角色继承关系,只需在Spring Security的配置类中提供一个RoleHierarchy即可。下面高亮代码含义:ROLE_dba拥有所有的权限 ROLE_admin具有ROLE_user的权限 ROLE_user则是一个公共角色...转载 2020-06-06 07:22:13 · 279 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(4)-基于数据库的URL权限规则配置
虽然前面我们实现了通过数据库来配置用户与角色,但认证规则仍然是使用HttpSecurity进行配置,还是不够灵活,无法实现资源和角色之间的动态调整。 要实现动态配置URL权限,就需要开发者自定义权限配置,具体步骤如下。四、基于数据库的URL权限规则配置1,数据库设计这里的数据库在前文(点击查看)的基础上增加一张资源表和一张资源角色管理表,并添加一些预置数据:资源表中定义了用户能够访问的URL模式。 资源角色表则定义了访问该模式的URL需要什么样的角色...转载 2020-06-06 07:21:38 · 543 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(3)-基于数据库的用户角色配置
之前的文章样例中,认证数据都是定义在内存里。而在真实项目中,用户的基本信息以及角色等都存储在数据库中,因此需要从数据库中获取数据进行认证。本文通过样例进行演示。三、基于数据库的用户角色配置1,添加依赖、配置数据库 本次样例使用MyBatis来操作数据库,首先在项目中添加MyBatis相关依赖,并进行数据库连接配置。具体参考我之前写的文章:SpringBoot - 使用MyBatis操作数据库1(安装配置,基本用法)2,创建数据表(1)首先创建相关的用户角色表,共三张...转载 2020-06-06 07:20:35 · 499 阅读 · 0 评论 -
SpringBoot - 安全管理框架Spring Security使用详解(1)-基本内存的用户、URL权限配置
二、基于内存的用户、URL权限配置1,用户角色配置(1)我们可以通过自定义类继承WebSecurityConfigurerAdapter,从而实现对Spring Security更多的自定义配置。比如下面样例我们就配置了两个用户,以及他们对应的角色。注意:基于内存的用户配置在配置角色时不需要添加“ROLE_”前缀,而下文介绍的基于数据库的认证配置角色时需要添加“ROLE_”前缀。 1 2 3 4 5 6 7 8 9...转载 2020-06-06 07:19:37 · 373 阅读 · 0 评论 -
SpringBoot-安全管理框架Spring Security使用详解(1)-基本用法
一般项目都会有严格的认证和授权操作,而在Java开发领域常见的安全框架有Shiro和Spring Security。本文首先介绍下后者。一、基本用法1,什么是 Spring Security ?Spring Security是一个相对复杂的安全管理框架,功能比Shiro更加强大,权限控制细粒度更高,对OAuth 2的支持也更友好。 由于Spring Security源自Spring家族,因此可以和Spring框架无缝整合,特别是Spring Boot中提供的...转载 2020-06-06 07:18:01 · 553 阅读 · 0 评论