首页 > 解决方案 > 我正在关注 youtube 教程,现在我遇到了问题,因为我想在 List 中返回,但它显示错误。我不明白错误

问题描述

UserDetails在类中实现接口,CustomUserDetails我添加了所有方法,在public Collection<? extends GrantedAuthority> getAuthorities()方法中我遇到了问题。

我不明白这个问题,在教程中它工作正常,在 youtube 教程视频中没有错误。

返回 List.of(simpleGrantedAuthority); 中发生错误

package com.anurag.config;

import java.util.Collection;
import java.util.List;

import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import com.anurag.entities.User;



public class CustomUserDetails implements UserDetails {
    
    private User user;

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        
      SimpleGrantedAuthority simpleGrantedAuthority =  new SimpleGrantedAuthority(user.getRole());
        
      return List.of(simpleGrantedAuthority);
    }

    @Override
    public String getPassword() {
        return user.getPassword();
    }

    @Override
    public String getUsername() {
        return user.getEmail();
    }

    @Override
    public boolean isAccountNonExpired() {
        return true;
    }

    @Override
    public boolean isAccountNonLocked() {
        return true;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }

    @Override
    public boolean isEnabled() {
        return true;
    }

}

标签: javaspring-bootspring-security

解决方案


编辑 1
根据托马斯的评论:

List.of() 方法是在 Java 9 中添加的,但您使用的是 Java 1.8。

我的工作实施getAuthorities()

@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
    return Collections.singleton(new SimpleGrantedAuthority(user.getRole()));
}

此错误仅由 Eclipse 显示还是在启动您的应用程序时也显示?


推荐阅读