source: src/main/java/edu/gjoko/schedlr/services/PostgresUserDetailsService.java@ 401a211

Last change on this file since 401a211 was cf9cdbf, checked in by Gjoko <goko_kostadinov@…>, 21 months ago

Initial commit.

  • Property mode set to 100644
File size: 1.5 KB
Line 
1package edu.gjoko.schedlr.services;
2
3import edu.gjoko.schedlr.entity.Stakeholder;
4import edu.gjoko.schedlr.repositories.StakeholderRepository;
5import org.springframework.security.core.GrantedAuthority;
6import org.springframework.security.core.authority.SimpleGrantedAuthority;
7import org.springframework.security.core.userdetails.User;
8import org.springframework.security.core.userdetails.UserDetails;
9import org.springframework.security.core.userdetails.UserDetailsService;
10import org.springframework.security.core.userdetails.UsernameNotFoundException;
11import org.springframework.stereotype.Service;
12
13import java.util.HashSet;
14import java.util.Set;
15
16@Service
17public class PostgresUserDetailsService implements UserDetailsService {
18
19 private final StakeholderRepository stakeholderRepository;
20
21 public PostgresUserDetailsService(StakeholderRepository stakeholderRepository) {
22 this.stakeholderRepository = stakeholderRepository;
23 }
24
25 @Override
26 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
27 Stakeholder user = stakeholderRepository.findStakeholderByUsername(username);
28 if(user == null) {
29 throw new UsernameNotFoundException("Non existing user");
30 }
31 Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
32 grantedAuthorities.add(new SimpleGrantedAuthority(user.getStakeholderType().name()));
33 return new User(user.getUsername(), user.getPassword(), grantedAuthorities);
34 }
35}
Note: See TracBrowser for help on using the repository browser.