너무 오랜만에 해서 기억도 안난다..;;
서현아 제발 이러지마...ㅜㅜ
이번주 목요일까지 이 강의 완강하고 혼자서 해보는게 목표다!!
이유 : 진짜 졸작해야함.. 개 조짐
시험기간 끝나기 전까지는 데이터 베이스 띄워놔야함.. ㄹㅇ 개조짐..
무한참조 하나도 기억안남;; 개조짐
물론 기억도 안나겠지만..? ^^
이런 코드가 있었다. 요 코드는 권한에 따라 접근이 가능하도록 하는 코드였다. 해당 사이트로 접속해보자!
분명 나는 만들었지만 접속할 수 없는 것을 확인할 수 있다.
유저페이지는 잘 들어감
데이터베이스 쿼리문으로 해보기..
권한 변경 잘 했는데 왜 안되냐..?
어... 뭐지.... sql에서 권한을 그냥 "ADMIN"
이 아니고 "ROLE_ADMIN"
으로 하니까 됌.. 이게 왜 되는 거지
이게 되는 이유 보러가기 👉 ??
@EnableGlobalMethodSecurity
를 추가하라는데...?securityConfig
클래스에 어노테이션을 추가하자..?
그런데 이게 뭔데요ㅜ
클래스 추가 코드
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class MySecurityConfig {
이 어노테이션은 @Secured
을 사용할 수 있게 만들어준다!
컨트롤러 해당 메서드 추가
@Controller
public class IndexController {
....
@Secured("ROLE_ADMIN")
@GetMapping("/info")
public @ResponseBody String info() {
return "개인정보";
}
}
이제는 들어가지 않는다!!
@EnableGlobalMethodSecurity
의 속성들@Secured()
사용을 가능하게 해준다. @PostAuthorize()
와 @PreAuthorize
사용을 가능하게 해준다. @PreAuthorize("hasRole('ROLE_MANAGER') or hasRole('ROLE_MANAGER')")
//여러개 가능
@GetMapping("/data")
public @ResponseBody String data() {
return "개인정보";
}
🤔 그런데 그냥 한 곳에서 해..
여기저기서 하면 안된다.
음..? 근데 자바로직으로 짜야지요!!