세션을 만들어서 접속 가능하도록 했고요

다음에는 어드민과 고객을 나눠서 페이지를 보이는것과 접속 위치를 다르게 확인할 예정입니다.

이전글:

2023.05.20 - [Spring] - spring vue 로그인session 03 -AuthenticationManager

 

spring vue 로그인session 03 -AuthenticationManager

음 지금 AuthenticationManager클래스까지는 지정했고요. 내일이나 모레쯤 마무리 지을수 있을것 같습니다. 이게 생각보다 sping 5.0대가 3.0떄랑 다르게 xml로 처리하는게 아니라 spring framework내에서 하려

kwaksh2319.tistory.com

보시면 그냥 페이지 접속시 403error가 발생하고 아이디와 비밀번호 db와 매칭이 되면 

session에 정보가 저장되어서 로그인이 되어  main페이지를 열어줍니다. 

UsersDetailService 코드 

@Service
public class UsersDetailService implements UserDetailsService {

    @Autowired
    private  UsersDao usersDao;
    public UsersDetailService(){

    }
    public UsersDetailService(UsersDao usersDao){
        this.usersDao=usersDao;
    }

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        //유저 데이터 가져오기
        Users user = usersDao.findByUsername(username);
        if (user == null) {
            throw new UsernameNotFoundException("User not found with username: " + username);
        } //user.getLevel()
        // 사용자 정보를 UserDetails 객체로 변환하여 반환user.getRoles()
        String role = "ROLE_ADMIN";
        if(user.getLevel()==0){
            role = "ROLE_ADMIN";
        }else if(user.getLevel()==1){
            role = "ROLE_CUSTOM";
        }else{
            role = "";
        }
        System.out.println(role);
        List<String> roles=new LinkedList<>();
        roles.add(role);

        return new org.springframework.security.core.userdetails.User(
                user.getUsername(),
                user.getPassword(),
                getAuthorities(roles)
        );
    }

    private List<GrantedAuthority> getAuthorities(List<String> roles) {
        // 사용자의 권한(role) 정보를 GrantedAuthority 객체로 변환합니다.
        List<GrantedAuthority> authorities = new ArrayList<>();
        for (String role : roles) {
            authorities.add(new SimpleGrantedAuthority(role));
        }
        return authorities;
    }
}

+ Recent posts