spring security(二)springb-boot + spring security + jwt

security入门介绍:https://www.jianshu.com/p/76bfa6743ba9


springb-boot + spring security + jwt项目整合
目录结构参考:
https://blog.csdn.net/lovelichao12/article/details/123319405

一.前后端分离登录:
前后端分离登录:https://blog.csdn.net/lovelichao12/article/details/123319405
使用spring Security + JWT 实现前后端分离登录:https://blog.csdn.net/qq_21602341/article/details/114577740

获取当前登录用户
在JwtAuthenticationTokenFilter中往SecurityContextHolder注入了一个用户对象,在实际的方法中,从中取出即可。
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
SysUser sysUser = (SysUser) authentication.getPrincipal();

二.jwt认证:
https://blog.csdn.net/qq_43799161/article/details/123854833


三.基于url权限处理:
    https://blog.csdn.net/m0_68850571/article/details/124086838
    SpringSecurity实现动态url拦截(基于rbac模型):https://www.jb51.net/article/220047.html 不详细,需要结合上一篇


反思:SpringSecurity的登陆认证流程源码分析:https://blog.csdn.net/DreamsArchitects/article/details/116662714

四.security异常统一处理
分为两部分:认证异常、授权异常
security异常都处理了,返回的都是json格式数据,所以需要手动处理
异常情况:
未登录访问不存在的接口 用户未登录 401 
未登录访问需要授权的接口 用户未登录 401
登录访问不存在的接口 404 not found
登录访问权限不足的接口 403 Forbidden
token没有传 用户未登录 401
token无法解析 无效的token 401
token过期 无效的token 401

security知识点:
AbstractAuthenticationProcessingFilter.doFilter()
    security-oauth2的使用
    //新增了一个过滤器,先根据clientId加载clientClients
    security.oauth2.provide.client.ClientCredentialsTokenEndpointFilter.attemptAuthentication()
        ->security.authentication.ProviderManager
            ->security.oauth2.provide.client.ClientDetailsUserDetailsService
                //自定义clientDetails
                ->security.oauth2.provide.ClientDetailsService==>ClientDetails
            ->security.authentication.dao.DaoAuthenticationProvider
            AbstractUserDetailsAuthenticationProvider
        <-
    <-

    TokenEndpoint.postAccessToken();
        ->//校验用户clientClients
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值