Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA实体实现SpringSecurityUserDetails的含义是什么?_Spring_Jpa_Spring Security_Spring Data Jpa - Fatal编程技术网

JPA实体实现SpringSecurityUserDetails的含义是什么?

JPA实体实现SpringSecurityUserDetails的含义是什么?,spring,jpa,spring-security,spring-data-jpa,Spring,Jpa,Spring Security,Spring Data Jpa,我有一个名为Member的JPA实体。我希望此实体实现Spring安全UserDetails并实现基于JPA的自定义UserService 在这样做之前,我有几个问题需要解决: 成员实体具有许多属性。Member现在实现了UserDetails,并因此存储到HttpSession中(请参见HttpSessionSecurityContextRepository)这一事实是否会显著影响会话使用情况 我是否可以通过调用来检索当前登录的成员:SecurityContextHolder.getCont

我有一个名为
Member
的JPA实体。我希望此实体实现Spring安全
UserDetails
实现基于JPA的自定义
UserService

在这样做之前,我有几个问题需要解决:

  • 成员
    实体具有许多属性。
    Member
    现在实现了
    UserDetails
    ,并因此存储到HttpSession中(请参见
    HttpSessionSecurityContextRepository
    这一事实是否会显著影响会话使用情况
  • 我是否可以通过调用来检索当前登录的
    成员
    :SecurityContextHolder.getContext().getAuthentication().getPrincipal()
    希望其所有属性在其他地方更新时保持正确同步
没有

不,您必须自己管理它…,即当您在某处更新它时,请确保您还更新了内存中的实例:

Member member = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
member.setYourField(yourValue); //

谢谢你的意见。嗯,对于一个大型应用来说,这是不可行的。没有更简单的方法吗?@balteo没有,主体在登录时被添加到上下文中,之后的任何更改都必须自行完成
expect all its properties to remain synchronized properly when they are updated elsewhere?
Member member = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
member.setYourField(yourValue); //