应用系统设计:基于Spring security设计一套安全认证和授权的服务

安全认证体系总结

目前安全认证方式有三种:

  • 1.通过用户名密码登录,服务端完成认证
  • 2.用过手机号和验证码登录,服务端完成认证
  • 3.通过第三方的Oauth2.o协议完成认证,后续还需要继续补充手机信息和用户信息,这种方式只是临时的。
    认证逻辑都一样:
  • 通过认证后服务端生成和记录token,然后发送到客户端,以后客户端每次请求都需要携带token进行请求,服务器每次校验token完成授权

在这里插入图片描述

基于Spring Security对上述技术的实现

  • 自定义PasswordEncoder完成密码加密
  • 自定义userDetailService完成获得用户名后的认证处理。
    • 根据用户查询对应的密码,并返回查询结果,如果不存在就抛出异常,后面的结果交给认证类处理
    • 根据用户名查询对应的权限
  • 重写UsernamePasswordAuthenticationFilter类,完成自定义认证
    • 重写类中的attemptAuthentication授权方法
    • 重写successfulAuthenticaiton授权成功方法
      • 发送token
      • 把用户的权限放到redis里,等待后续调用
    • 重写unsuccessfulAuthenticaiton授权成功方法
  • 重写BasicAuthenticationFilterL类,完成自定义的授权
    • 重写doFilterInternal方法
      • 获取token,拿到用户名,查询权限
  • 编写配置文件,把自定义的内容注册到配置文件里
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

总结

  • 针对登录页面设置一条过滤链,进行登录认证获得token
  • 针对其他api设置一条过滤链,专门认证api是否携带token
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不被定义的号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值