如何获取已登录用户的ID属性并将其设置为数据库中的外键

时间:2018-05-02 13:49:16

标签: spring spring-mvc spring-boot java-ee spring-security

所以这就是事情。我在数据库中有2个表:用户客户端

用户可以在数据库中添加一个或多个客户端。所以我想要的是当用户添加客户端时 - 该函数将检索登录用户的 id 并将其作为外键添加到客户端表中。

我已经完成了OneToMany制图。

这是我的控制器:

@RequestMapping(value = "/postficheclient", method = RequestMethod.POST)
public ResponseEntity<?> createClient(@RequestBody Client newClient) {
    // newClient.setUser(user);
    return new ResponseEntity<Client>(clientservices.save(newClient), HttpStatus.CREATED);
}

使用该功能,它会在null表中添加Client值。

有人可以帮助我吗?

PS:我使用弹簧安全系统。

1 个答案:

答案 0 :(得分:0)

使用Spring Security,您可以通过SecurityContextHolder.getContext()获取已记录的客户端.getAuthentication()

您可以从以下网址获取各种详细信息:

  • getPrincipal() - 通常是用户标识符
  • getAuthorities() - 当局
  • getDetails() - 其他用户详细信息

各个领域的信息取决于Spring安全如何处理您的身份验证机制,但我猜您可以找到您原则上需要的内容。