SpringBoot整合SpringSecurityOauth2实现鉴权-动态权限

SpringBoot整合SpringSecurityOauth2实现鉴权-动态权限

写在前面

思考:为什么需要鉴权呢?

系统开发好上线后,API接口会暴露在互联网上会存在一定的安全风险,例如:爬虫、恶意访问等。因此,我们需要对非开放API接口进行用户鉴权,鉴权通过之后再允许调用。

 

准备

spring-boot:2.1.4.RELEASE

spring-security-oauth2:2.3.3.RELEASE(如果要使用源码,不要随意改动这个版本号,因为2.4往上的写法不一样了)

mysql:5.7

 

效果展示

这边只用了postman做测试,暂时未使用前端页面来对接,下个版本角色菜单权限分配的会有页面的展示

 

1、访问开放接口 http://localhost:7000/open/hello

 

 

2、不带token访问受保护接口 http://localhost:7000/admin/user/info

 

 

3、登录后获取token,带上token访问,成功返回了当前的登录用户信息

 

 

 

 

实现

oauth2一共有四种模式,这边就不做讲解了,网上搜一搜,千篇一律

因为现在只考虑做单方应用的,所以使用的是密码模式。

后面会出一篇SpringCloud+Oauth2的文章,网关鉴权

 

讲一下几个点吧

1、拦截器配置动态权限

 

新建一个 MySecurityFilter类,继承AbstractSecurityInterceptor,并实现Filter接口

 初始化,自定义访问决策管理器

@PostConstruct
 public void init(){
        super.setAuthenticationManager(authenticationManager);
        super.setAccessDecisionManager(myAccessDecisionManager);
  }   
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » SpringBoot整合SpringSecurityOauth2实现鉴权-动态权限