【问题标题】:Spring Boot JWT token Object wise fetchingSpring Boot JWT 令牌对象智能获取
【发布时间】:2019-02-07 04:23:18
【问题描述】:

我有像三行这样的分区表

  • divsionId 名称

    1        divA
    2        divB
    3        divC
    

和客户喜欢

custId 名称 DivisionId

1     cust01       1
2     cust02       1
3     cust03       2
4     cust04       1
5     cust05       2
6     cust06       3
7     cust07       3
8     cust08       1

和用户表一样

userId unname password roleId divisionId

   1      john      ***       1          1
   2      ravi      ***       2          1
   3      bush      ***       2          2
   4      sam       ***       2          3
   5      jasd      ***       1          2
   6      jas       ***       2          2
   7      jioa      ***       2          3
   8      saho      ***       2          1
   9      vija      ***       1          1

角色 ID 名称

   1      ADMIN
   2      USER

当用户尝试使用三个参数登录时 { “除法”:“divA”, “uname”:“约翰”, “密码”: ”****” }

如果用户成功登录,我将生成 JWT Token,包括部门、角色等

@GetMapping("/listcustomers")
public List<Customers> getCustomers(){
return customerService.findAll();
}

在这种情况下,当用户尝试从客户表中访问 /listcustomers api 时,他应该获取与登录用户的部门 ID 匹配的客户列表,并且仅客户分配部门的 divisonId,他不应该能够访问来自任何地方的其他部门客户,这就是我寻找前哨的方式,不,我得到了解决方案,请任何人帮助我,还有许多带有部门分配对象的 api,并且 ROLE 工作正常,但部门明智我没有得到,

我正在使用 spring boot 2.0.0.Relaease、Java 8、Hibernate、JWT Authentication spring security

【问题讨论】:

    标签: jwt spring-security-rest


    【解决方案1】:

    假设您创建了一个 jwt 令牌,您可以使用 Principal 从令牌中获取用户名。然后您定义 findByUsername,它会为该用户返回过滤后的客户。

    import java.security.Principal;
    
    @GetMapping("/listcustomers")
    public List<Customers> getCustomers(Principal principal){
        String currentUser = principal.getName()
         return customerService.findByUsername(currentUser );
    }
    

    【讨论】:

    • 我想在许多 api 调用中过滤具有部门的客户,正如您所说,对于每个查询,我需要为每个方法添加条件,而不是有任何其他方法来只进行过滤所有api调用一次,在securityconfig类中过滤更简单灵活
    • 使用过滤器我不确定
    猜你喜欢
    • 2021-01-19
    • 2021-04-30
    • 2022-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    • 2019-07-21
    • 2017-10-03
    • 2021-09-04
    相关资源
    最近更新 更多