OAuth+Security
唱、跳、Rap、篮球
冰雕是冰做的,而你是沙做的
展开
-
OAuth + Security - 7 - 异常翻译
认证异常翻译默认情况下,当我们在获取令牌时输入错误的用户名或密码,系统返回如下格式响应:{ "error": "invalid_grant", "error_description": "Bad credentials"}当grant_type错误时,系统返回:{ "error": "unsupported_grant_type", "error_description": "Unsupported grant type: passwordd"}在secur原创 2020-06-23 15:57:19 · 583 阅读 · 1 评论 -
OAuth + Security - 错误收集
Could not decode JSON for additional information: BaseClientDetails完整的错误输出如下:2019-12-03 22:18:37.239 WARN 19120 --- [nio-8100-exec-4] o.s.s.o.p.c.JdbcClientDetailsService : Could not decode JSON for additional information: BaseClientDetails [clientI原创 2020-06-09 11:06:19 · 219 阅读 · 0 评论 -
OAuth + Security - 6 - 自定义授权模式
我们知道OAuth2的官方提供了四种令牌的获取,简化模式,授权码模式,密码模式,客户端模式。其中密码模式中仅仅支持我们通过用户名和密码的方式获取令牌,那么我们如何去实现一个我们自己的令牌获取的模式呢?下面我们将以用户名,密码,角色三个信息的方式来获取令牌。在授权模式中,授权模式的核心接口是 TokenGranter ,他拥有一个抽象实现类 AbstractTokenGranter ,我们需要自定义新的 grant type ,就再写一个他的子类即可,如下:public class AccountRole原创 2020-06-09 10:55:10 · 245 阅读 · 0 评论 -
OAuth + Security - 5 - Token存储升级(数据库、Redis)
PS:此文章为系列文章,建议从第一篇开始阅读。在我们之前的文章中,我们当时获取到Token令牌时,此时的令牌时存储在内存中的,这样显然不利于我们程序的扩展,所以为了解决这个问题,官方给我们还提供了其它的方式来存储令牌,存储到数据库或者Redis中,下面我们就来看一看怎么实现。不使用Jwt令牌的实现存储到数据库中(JdbcTokenStore)使用数据库存储方式之前,我们需要先准备好对应的表。Spring Security OAuth仓库可以找到相应的脚本:https://github.com.原创 2020-06-07 23:19:37 · 238 阅读 · 0 评论 -
OAuth + Security - 4 - 客户端信息存储数据库
在上面的所有配置中,我们的客户端信息和授权码模式下的授权码任然还是存储在数据库中的,这样就不利于我们后期的扩展,所以在正式的生成环境中,我们一般将其存储在数据库中。建表首先,根据OAuth官方给的数据库建表实例创建相应的表,这里我们只需要oauth_client_details和oauth_code############################## oauth_client_details #############################DROP TABLE IF EXISTS原创 2020-06-02 17:08:03 · 285 阅读 · 0 评论 -
OAuth + Security - 3 - JWT令牌
为什么使用JWT令牌在上面的资源服务器中,通过配置,我们了解到,当我们拿着token去获取资源时,程序会先去调用远程认证服务器的端点去验证解析token,或者在本地解析校验token,这样毫无疑问,当访问量过大的时候,对认证服务器的压力可想而知,所以为了解决上面的问题,我们采用JWT令牌格式,可以优化上面的问题。令牌采用JWT格式即可解决上边的问题,用户认证通过会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需原创 2020-06-02 16:12:50 · 219 阅读 · 0 评论 -
OAuth + Security - 2 - 资源服务器配置
资源服务器配置@EnableResourceServer 注解到一个@Configuration配置类上,并且必须使用ResourceServerConfigurer 这个配置对象来进行配置(可以选择继承自ResourceServerConfigurerAdapter然后覆写其中的方法,参数就是这个对象的实例),下面是一些可以配置的属性:ResourceServerSecurityConfigurer中主要包括:tokenServices :ResourceServerTokenService原创 2020-06-02 11:45:47 · 662 阅读 · 0 评论 -
OAuth + Security - 1 - 认证服务器配置
配置基础包依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>================================== 在spring-boot中 ===============================原创 2020-06-02 11:44:49 · 375 阅读 · 0 评论