前言今天内容主要是解决一位粉丝提的问题:在使用SpringSecurityOAuth2时如何自定义认证服务器返回异常。那么首先我们先以Password模式为例看看在认证时会出现哪些异常情况。授权模式错误这里我们故意将授权模式password修改成password1,认证服务器返回如下所示的异常{ "error": "unsupported_grant_type", "error_description": "Unsupported grant type: password1"}密码错误在认证时故意输错usern
概述大家都知道在oauth2认证体系中有四种授权模式:授权码模式(authorizationcode)简化模式(implicit)客户端模式(clientcredentials)密码模式(password)那么如何新增一个自定义的授权模式,比如像下面这样根据手机号和短信验证码进行登录呢?要自定义授权模式我们得先了解下oauth2.0的整体认证过程,认证入口在org.springframework.security.oauth2.provider.endpoint.TokenEndpoint#postAccessToken方法中@RequestMapping( value = {&
导读:上篇文章我们已经抽取出了单独的认证服务,本章主要内容是让SpringCloudGateway集成Oauth2。概念部分image.png在网关集成Oauth2.0后,我们的流程架构如上。主要逻辑如下:1、客户端应用通过api网关请求认证服务器获取access_tokenhttp://localhost:8090/auth-service/oauth/token2、认证服务器返回access_token{"access_token":"f938d0c1-9633-460d-acdd-f0693a6b5f4c","token_type&quo
导读:为了保证我们微服务的安全性,本章主要内容是使用Oauth2.0给我们微服务加上安全校验。概念为了保证服务的安全性,往往都会在接口调用时做权限校验。在分布式架构中我们会把复杂的业务拆成多个微服务,这样不得不在所有服务中都实现这样的权限校验逻辑,这样就会有很多代码和功能冗余。所以在微服务架构中一般会独立出一个单独的认证授权服务,供其他所有服务调用。在SpringCloud体系中,我们只对网关层开放外网访问权限,其他后端微服务做网络隔离,所有外部请求必须要通过网关才能访问到后端服务。在网关层对请求进行转发时先校验用户权限,判断用户是否有权限访问。我们一般使用Oauth2.0来实现对所有后端服务