You zi 2023-08-07 18:03 采纳率: 33.3%
浏览 2
已结题

关于#shiro#的问题,如何解决?

shiro的权限控制如何实现,数据上面的控制,
比如我们有100个店铺
配置这个用户只能查看某某店铺,
某个用户有查询这个报表的权限,但是查询数据时,只能查看当前用户所拥有店铺的权限
当每个报表都需要这样控制的时候,如何设计?

  • 写回答

3条回答 默认 最新

  • 玥轩_521 2023-08-07 20:03
    关注

    援引GPT回答:
    在Shiro中实现数据上的权限控制可以通过以下步骤:

    1. 配置Shiro的权限控制规则:在Shiro的配置文件中,可以定义用户角色和权限的规则。例如,可以定义某个用户只能查看某个店铺的权限。

    2. 在数据访问层(DAO)中进行权限过滤:在查询数据时,根据当前用户的角色和权限进行数据过滤。可以在DAO层使用Shiro的Subject对象获取当前用户的角色和权限,并将其应用到查询条件中。

    3. 设计数据模型:在设计数据模型时,可以考虑将店铺和报表的权限信息与用户关联起来。可以使用关联表或者嵌套对象的方式,将用户和店铺、报表的权限进行关联。

    4. 使用Shiro的注解进行权限控制:可以在需要进行权限控制的方法上使用Shiro的注解,例如@RequiresPermissions注解。这样,在方法调用时,Shiro会自动检查当前用户是否具有相应的权限。

    5. 自定义Shiro的Realm:如果Shiro的默认Realm无法满足你的需求,你可以自定义一个Realm,重写其中的授权方法(doGetAuthorizationInfo)和认证方法(doGetAuthenticationInfo),以实现自定义的权限控制逻辑。

    总的来说,实现数据上的权限控制需要结合Shiro的权限控制规则、数据访问层的权限过滤、数据模型的设计以及Shiro的注解和自定义Realm来实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月16日
  • 已采纳回答 8月8日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计