Получение ошибка для каждого пользователя в базе данных - PullRequest
0 голосов
/ 11 февраля 2020

Я использую настройки безопасности в Springboot, с Java8 и mongodb . После настройки я получил страницу входа. Для каждого пользователя в базе данных я получаю сообщение об ошибке "Пользователь заблокирован" . Здесь я делюсь изображением полученного результата.

Примечание: я не настроил роли и авторизацию для какого-либо пользователя.

Output

Примечание: я получаю "Bad Credentials" для пользователя, которого нет в базе данных, который показывает, что он связан с базой данных.

Output

Я делюсь своим фрагментом кода здесь.

Pom. xml:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Bean:

@Document(collection = "UserDetails")
public class User {

    @Id 
    private String id;
    private String username;
    private String password;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public User(String username, String password) {
        super();
        this.username = username;
        this.password = password;
    }
    public User() {
        super();
    }

Репозиторий:

@Repository
public interface UserDetailsRepository extends MongoRepository<User, String> {


    User findByUsername(String username);



}

Сервис:

@Service
public class SecUserDetailsService implements UserDetailsService {

    @Autowired
    private UserDetailsRepository userDetailsRepo;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

        User user = userDetailsRepo.findByUsername(username);
        if(user == null){
            throw new UsernameNotFoundException(username);
        }else{

            UserDetails details = new MyUserPrincipal(user);
            return details;
        }
    }

}

MyUserPrincipal:

public class MyUserPrincipal implements UserDetails{


    private User user;

    public MyUserPrincipal(User user) {

        this.user = user;

    }

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getPassword() {
        // TODO Auto-generated method stub
        return this.user.getPassword();
    }

    @Override
    public String getUsername() {
        // TODO Auto-generated method stub

        return this.user.getUsername();
    }

    @Override
    public boolean isAccountNonExpired() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isAccountNonLocked() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    public boolean isEnabled() {
        // TODO Auto-generated method stub
        return false;
    }

}

SecuriyConfigurations:

@EnableWebSecurity
public class securityConfigurations extends WebSecurityConfigurerAdapter {

    @Autowired
    private SecUserDetailsService userDetailsService;

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception{   

        auth.userDetailsService(userDetailsService);


    }

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