相关疑难解决方法(0)

Spring Security不返回UserDetails对象,仅返回用户名

我以为我的授权实现已经完成,但是当尝试检索UserDetails对象时,我得到的只是用户名。

我正在使用具有以下详细信息的oauth。

配置AuthenticationManager:

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
}
Run Code Online (Sandbox Code Playgroud)

完成此操作后,我可以调试到userDetailsS​​ervice中:

@Service
public class UserServiceImpl implements UserService, UserDetailsService {
@Override
    public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
        MyUser persistedUser = userRepository.findByEmail(email);

        if (persistedUser == null) {
            throw new UsernameNotFoundException(String.format("The email %s doesn't exist", email));
        }

        List<GrantedAuthority> authorities = new ArrayList<>();

        MyUser inMemoryUser = new MyUser(persistedUser.getEmail(), null, persistedUser.getEnabled(), false,
                false, false, authorities);

        return inMemoryUser;
    }
}
Run Code Online (Sandbox Code Playgroud)

这样就很好了,我的客户又回来了JWT。但是我在调​​试以后的控制器方法时发现了以下问题。

@GetMapping
public @ResponseBody Iterable<Curriculum> getMyCurriculums(@AuthenticationPrincipal MyUser injectedUser) {
    Authentication auth = …
Run Code Online (Sandbox Code Playgroud)

spring oauth spring-security

2
推荐指数
1
解决办法
835
查看次数

标签 统计

oauth ×1

spring ×1

spring-security ×1