V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bk201
V2EX  ›  Java

优雅设置账号只能使用读类型的 API

  •  
  •   bk201 · 2021-11-18 14:20:06 +08:00 · 1797 次点击
    这是一个创建于 861 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在要对一些特定账号做只读限制,也就是所有涉及到更新,删除数据库的操作要全部拦截掉,返回无操作权限。只保留读取类的 API 可以使用。怎么做比较优雅。数据库有 mysql ,hbase

    12 条回复    2021-11-23 19:31:38 +08:00
    harde
        1
    harde  
       2021-11-18 14:38:10 +08:00
    意思是以前完成没有权限控制,现在要新加么???

    原来什么框架啊? Spring ?没有框架? 这问题从何答起啊
    bk201
        2
    bk201  
    OP
       2021-11-18 14:39:22 +08:00
    @harde 是的,之前并没有。目前 springboot 框架
    harde
        3
    harde  
       2021-11-18 14:43:33 +08:00
    @bk201 spring security 或 shiro 满足不了?
    bk201
        4
    bk201  
    OP
       2021-11-18 14:46:47 +08:00
    @harde 接口太多了,没耐心一个一个去整理。只是想涉及到更新操作的全部拦截,比如用 mybatis 拦截器拦截。
    harde
        5
    harde  
       2021-11-18 15:17:54 +08:00   ❤️ 1
    然后还要"优雅"?,恕在下不能理解。。。。
    WangZiyue
        6
    WangZiyue  
       2021-11-18 15:24:21 +08:00
    mysql 搞个只读的账号
    WangZiyue
        7
    WangZiyue  
       2021-11-18 15:26:15 +08:00   ❤️ 1
    mysql 搞个只读的账号
    mbp 用个多数据源的插件
    想办法写个筛选走不同的数据源
    marcong95
        8
    marcong95  
       2021-11-18 15:28:31 +08:00   ❤️ 1
    如果是 restful api 的话,你可以考虑拦截所有 POST PUT PATCH DELETE 请求

    当年我一只前端啥都不懂公司让我搞这东西我就这么干了
    aguesuka
        9
    aguesuka  
       2021-11-18 16:37:32 +08:00
    aop 拿到事务和是否为特定用户, 如果是就 setReadOnly(true)
    cnit
        10
    cnit  
       2021-11-18 17:36:31 +08:00
    Ctrl + Shift + R 批量替换加注解呀,要不就是切面到数据操作层判断。
    jamesxu
        11
    jamesxu  
       2021-11-18 18:21:39 +08:00 via iPhone
    @marcong95 这个不一定行的通,很多项目接口全是 post
    bk201
        12
    bk201  
    OP
       2021-11-23 19:31:38 +08:00
    @aguesuka
    @WangZiyue
    @cnit 同步可以这么操作,因为可以拿到用户信息,异步怎么操作
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1191 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:25 · PVG 02:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.