Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Java 获取用户详细信息_Java_Spring_Spring Mvc_Spring Security_Userdetailsservice - Fatal编程技术网

Java 获取用户详细信息

Java 获取用户详细信息,java,spring,spring-mvc,spring-security,userdetailsservice,Java,Spring,Spring Mvc,Spring Security,Userdetailsservice,我创建了一个@ManyToMany表。一个表中的用户和另一个表中的角色。也就是说,一个用户可以有多个角色,而一个角色可以有多个用户。我认为没有什么不寻常或错误 这就是我获得角色的方式: List<AuthoritiesEntity> roleList = userEntity.getAuthoritiesEntities(); 您可以调用mapRolesToAuthorites方法并传递roleList并定义如下函数 return new org.springframewo

我创建了一个
@ManyToMany
表。一个表中的用户和另一个表中的角色。也就是说,一个用户可以有多个角色,而一个角色可以有多个用户。我认为没有什么不寻常或错误

这就是我获得
角色的方式

    List<AuthoritiesEntity> roleList = userEntity.getAuthoritiesEntities();

您可以调用
mapRolesToAuthorites
方法并传递
roleList
并定义如下函数

return new org.springframework.security.core.userdetails.User("va@va.va", "1111",
                    true, true, true, true, mapRolesToAuthorites(roleList));

private Collection<? extends GrantedAuthority> mapRolesToAuthorites(Collection<Role> roles) {
        return roles.stream().map(role -> new SimpleGrantedAuthority(role.getName())).collect(Collectors.toList());
    }
返回新的org.springframework.security.core.userdetails.User(“va@va.va", "1111",
真的,真的,真的,真的,mapRolesToAuthorites(roleList));

私人收藏
private Collection您需要修改您的
getAuthoritiesEntities

private List<GrantedAuthority> getAuthoritiesEntities(Set<Role> userRoles) {
        Set<GrantedAuthority> roles = new HashSet<>();
        userRoles.forEach((role) -> {
            roles.add(new SimpleGrantedAuthority(role.getRole()));
        });

        List<GrantedAuthority> grantedAuthorities = new ArrayList<>(roles);
        return grantedAuthorities;
    }
现在返回身份验证

return new org.springframework.security.core.userdetails.User(userEntity.getUsername(), userEntity.getPassword(), roleList);

这不起作用。是的,你的方法有效。非常感谢。但我已经找到了解决办法。我在上面展示了这个。
private List<GrantedAuthority> getAuthoritiesEntities(Set<Role> userRoles) {
        Set<GrantedAuthority> roles = new HashSet<>();
        userRoles.forEach((role) -> {
            roles.add(new SimpleGrantedAuthority(role.getRole()));
        });

        List<GrantedAuthority> grantedAuthorities = new ArrayList<>(roles);
        return grantedAuthorities;
    }
        List<AuthoritiesEntity>roleList=userEntity.getAuthoritiesEntities(userEntity.getRoles());
return new org.springframework.security.core.userdetails.User(userEntity.getUsername(), userEntity.getPassword(), roleList);