最近一直在搞Spring Cloud Gateway 整合 Spring Security Oauth2,网上找了很多资料,搞了好几天,今天终于搞完了,先来说一下具体思路吧。(里面只展示一些主要的代码)
服务名
注释
描述
zswyAuth-8850
认证服务器
实现一个简单的基本的 oauth2认证服务 使用 jwt token,使用自定义 JwtTokenStore
zswyGateway-9527
网关
实现简单的鉴权服务,调用zswyAuth-8850的auth/check_token进行token校检、鉴权,最后通过gateway进行调用
zswyBlog
资源服务器
使用 spring cloud gateway 实现简单路由,实现统一路由转发
主要思路: 首先在认证服务器上面获取token,在网关上进行验证,然后通过网关到资源服务器上面获取资源。因为是自己的项目,所以里面主要是用到密码模式实现的。
认证服务器
pom.xml
点击查看代码
里面主要是依赖主要是认证鉴权依赖实现认证服务器的,其他依赖是我这个项目所需的依赖
认证服务器主要核心类
点击查看代码
tokenConfig配置类
点击查看代码
MytokenEnhancer增强器(增加token里面的信息,信息可以自己定义)
点击查看代码
WebSecurityConfig主要配置类(负责定义拦截哪些路径或允许哪些路径通过)
点击查看代码
MyUserDetailService(查询用户是否存在)
点击查看代码
FailureHandler
点击查看代码
LogoutHandler
点击查看代码
SuccessHandler
点击查看代码
WebResponseTranslator(获取token时用户名错误的处理)
点击查看代码
zswyAuthMain8850
点击查看代码
application.yml
点击查看代码
网关
imtoken的官网下载的网址是多少imtoken官网下载是什么
pom.xml
点击查看代码
AuthClient(认证客户端)
点击查看代码
GatewayCorsConfiguration(网关跨域的配置类)
点击查看代码
MyLogGateWayFilter(全局过滤器)
点击查看代码
WebSecurityConfig(Security的配置类)
点击查看代码
TokenUntils(token的工具类)
点击查看代码
zswyGateway9527(主程序类)
点击查看代码
application.yml
点击查看代码
资源服务器
pom.xml
点击查看代码
资源服务核心配置类
点击查看代码
TokenConfig
点击查看代码
CustomAccessDeniedHandler(没有权限的操作)
点击查看代码
AuthenticationFilter(认证过滤器,获取到传过来的用户名和权限)
点击查看代码
zswyBlogMain
点击查看代码
UserController(控制器)
点击查看代码
有nacos的先启动nacos,没有的不用启动,然后依次启动zswyAuth-8850,zswyBlog,zswyGateway-9527
username和password分别是与认证服务器的client-id和配置client-secret里的值
grant_type 是指定以什么模式进行,password是密码模式
scope是指定范围,all为所有范围
username是用户名
password是密码
获取令牌,此时access_token就是token,你可以用它来访问一些资源,refresh_token是刷新令牌
然后我们复制这个token到请求头去请求资源
以下就是资源请求成功后返回的数据
好了,这样Spring Cloud Gateway 整合 Spring Security Oauth2就好了,如果有错误的地方欢迎指正。
imtoken的最新官网网站怎么找 imtoken官网下载网址是什么