그 전에는 권한 처리가 없어서
role이 ADMIN이어도 로그인시 /amdin 페이지로 이동이 안되었음
이걸 해결해보자
롸..?
'ADMIN' 안됨 'ROLE_ADMIN' 이라고 해줘야 인식함.. 뭐?
WebSecurityConfig.java
// admin에 대한 요청은 전부, role이 ADMIN인 유저만이 사용가능하다.
// 인증이 안될경우 403 에러가 뜸
// 'ADMIN' 안됨 'ROLE_ADMIN' 이라고 해줘야 인식함.. 뭐?
.antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')")
저렇게 access를 줘도 되고
또다른 방법이 있음
Controller 메소드에 직접적으로 Role을 부여하는 법
WebSecurityConfig.java
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
}
@EnableGlobalMethodSecurity 이것임!
MainCotroller.java
@PreAuthorize("haseRole('ROLE_ADMIN')")
@Secured("ROLE_ADMIN")
@RequestMapping("/info")
public @ResponseBody String info(Model model) {
return "개인정보";
}
오.. 두번째 방법이 훨 쉽고 직관적이니 이걸 쓰는걸로