세션을 만들어서 접속 가능하도록 했고요
다음에는 어드민과 고객을 나눠서 페이지를 보이는것과 접속 위치를 다르게 확인할 예정입니다.
이전글:
2023.05.20 - [Spring] - spring vue 로그인session 03 -AuthenticationManager
보시면 그냥 페이지 접속시 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;
}
}
'웹 > Spring vue 웹 개발' 카테고리의 다른 글
spring vue 로그인, 로그아웃, 어드민 권한 분리작업 완료 (0) | 2023.05.23 |
---|---|
spring vue 로그인, 로그아웃, 어드민 권한 분리작업01 (0) | 2023.05.22 |
spring vue 로그인 03 -AuthenticationManager (0) | 2023.05.20 |
spring vue 로그인02-세션 권한 만들기 (0) | 2023.05.18 |
spring vue 로그인 01 (0) | 2023.05.17 |