zoukankan      html  css  js  c++  java
  • security-oauth2

    笔记来自
    Spring Boot:整合Spring Security

    security-oauth2是什么

    • security是个框架
    • oauth2是个协议,这个在最后面说
    • 搜索相关资料还会看到sso单点登录

    网上的资料很多,但是都看得一脸懵逼,正确操作是去github下一个能用的示例项目,运行起来才知道怎么使用

    security有什么用

    • 账号登陆
    • 角色权限
    • 第三方授权

    对比

    • security
    • shiro,比security简单,功能也少些

    使用

    • maven,配置,代码真的很多,写不完,还是得看项目,项目已经提交了github【springcloud-pdt/module-order-9002】
    • 这里讲一下整个流程
    // 在配置被忽略的接口不需要登录也可以访问
    
    // 请求来到 /login,进入SecurityUtils.login(),生成的token来自JwtTokenUtils工具类
    // 这个工具类里可以看到密钥,有效时间等数据,生成出来的token才能被密钥再反向解密
    // 这里就应该把username和token一起存进redis
    
    // 在JwtAuthenticationFilter.getAuthenticationeFromToken()下面可以去判断redis是否存在,不存在就说明被二次登陆或者自行退出了
    
    // 接口权限的注解是@PreAuthorize()
    // 在PermissionService里自定义了权限注解@PreAuthorize("@ss.hasRole('permission')")
    // 这个ss.hasRole自定义方法类就在PermissionService里,需要去查询数据库,判断用户有没有这个权限,最后返回true/false就行
    // 如果是false,就会触发配置里的认证失败处理类,代码里一律返回:权限不足
    

    oauth2

    • 这是个服务于第三方的协议,有个企业要跟你合作,但是你不想公开自己的数据库数据,应该怎么做
    • 做一个oAuth提供服务的网页,网页让企业去填一个属于他们的密钥A,然后你后台审核通过,会给他们一个密钥B
    • 在他们的网站上有个用第三方登陆的按钮,点击按钮后会跳转到你的授权页面,并且后面后参数是redice等于过来时的页面地址,用于登陆成功后你再给他跳转回去,还有一个参数就是他们的密钥A
    • 用户授权登陆,你需要判断账号密码正确,还有密钥A是不是真的,然后生成accessId,这个accessId是密钥A对应的密钥B和账号密码用户Id加密的,然后再跳转回redice参数的地址上,拼接上刚才生成的accessId
    • 对方拿到accessId,会把accessId和密钥B作为参数请求你的接口,然后你判断成功返回用户的数据,比如头像等少量安全的数据
    • 这就是oAuth的全过程,很简单,完全不需要什么封住好的框架就能实现
    • 这些框架提供的就是一个安全的加密和解密过程,如果你真的需要的话

    sso单点登录

    • 这其实就是redis是要存一个username-token还是多个的问题,如果存一个,另一个登录就会替换掉上一个登录的token
    • 你可以定时让前端去请求接口判断登陆状态
    • 如果觉得这样服务器压力太大,也可以等用户下一次请求再返回重新登陆的响应
    • 是不是简简单单,这是没必要去用什么框架的,一大堆配置,很复制,很头疼
  • 相关阅读:
    phpcms V9 联动菜单的调用
    【转】雷军:扁平化管理 不打卡不设KPI
    【转】 Json转换利器Gson之实例五-注册TypeAdapter及处理Enum类型
    【转】Json转换利器Gson之实例四-实际开发中的特殊需求处理
    【转】 Json转换利器Gson之实例三-Map处理
    【转】 Json转换利器Gson之实例二-Gson注解和GsonBuilder
    【转】Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
    【转】工作分解结构在软件开发中的应用
    【转】 IT项目管理的三个条件、五个步骤
    【转】 项目组内个角色的职责说明
  • 原文地址:https://www.cnblogs.com/pengdt/p/13523340.html
Copyright © 2011-2022 走看看