쌓고 쌓다
Spring Security 권한처리 본문
앞전의 코드에서 다음의 코드가 권한 확인이 안되어서
hasAnyRole("ADMIN", "MANAGER") => hasAnyAuthority 또는 hasAuthority로 변경했다.
hasAnyAuthority, hasAuthority가 대소문자를 구분하므로 setRole("user")로 해놓고
권한을 "ADMIN"으로 확인하면 안된다.
SecurityConfig
@Configuration
@EnableWebSecurity
@EnableMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class SecurityConfig {
...
}
@Secured, @PreAuthorize, PostAuthorize를 사용하기위해 @EnableMethodSecurity를 추가해주자.
TestController.java
@Controller
public class IndexController {
@GetMapping("/info")
@ResponseBody
@Secured("admin")
public String info() {
return "개인정보";
}
@GetMapping("/data")
@ResponseBody
@PreAuthorize("hasAuthority('admin') or hasAuthority('manager')")
//@PostAuthorize("hasAuthority('admin')")
public String data() {
return "data";
}
}
- @Secured : 해당 메서드를 수행할 수 있는 권한을 메서드 단위로 설정할 수 있다.
- @PreAuthorize, @PostAuthorize : 메서드를 다 수행하기 전, 후에 인증을 거치게할 수 있다.
'프로그래밍 > spring' 카테고리의 다른 글
Spring Security JWT를 위한 로그인 (0) | 2024.01.18 |
---|---|
Spring Security 필터 (0) | 2024.01.17 |
Spring Security 로그인 (0) | 2024.01.16 |
Spring Security 회원가입 및 BCrypt (0) | 2024.01.15 |
Spring Security 설정 및 로그인 페이지로 보내기 (1) | 2024.01.15 |
Comments