Конструктор SimpleGrantedAuthority (Set <Role>) не определен, это ошибка - PullRequest
0 голосов
/ 13 февраля 2019

Я получил ошибку во время кодирования, пожалуйста, кто-нибудь может решить эту ошибку, ее изменения показа к возвращению getRoles () к строке, которую я изменил, но все еще ее ошибка запроса, если я изменяю пользователя там, это будет ошибка

package com.deevia.otpGenaration.otpGenaration.service;

import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import com.deevia.otpGenaration.otpGenaration.model.User;
import  com.deevia.otpGenaration.otpGenaration.repositories.UserRepository;

@Service
public class MyUserDetailsService {
    @Autowired
    private UserRepository userRepository;

    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        User user = userRepository.findByUsername(username);
        GrantedAuthority authority = new SimpleGrantedAuthority(user.getRoles());
        UserDetails userDetails = (UserDetails) new org.springframework.security.core.userdetails.User(user.getUsername(),
        user.getPassword(), Arrays.asList(authority));

        return userDetails;
    }
}

1 Ответ

0 голосов
/ 13 февраля 2019

это нормальная ошибка, так как конструктор SimpleGrantedAuthority принимает String: SimpleGrantedAuthority(java.lang.String role).

Я не знаю, какой тип возврата getRoles() из com.deevia.otpGenaration.otpGenaration.model.Userкласс, но если это коллекция строк, вы можете использовать поток для отображения user.getRoles().stream().map(SimpleGrantedAuthority::new).collect(java.util.stream.Collectors.toList()); и передать его UserDetails

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...