💡 이 포스트에 적힌 메서드말고 다른 메서드는 필요할 때마다 수정해서 올리고 있습니다!
필터체인을 등록하기 위한 filterChain(HttpSecurity http) 메서드를 보면 매개변수에 여러 메서드를 추가로 달아서 최종적으로 이를 build한 것을 리턴한다.
이 HttpSecurity를 build하기 전에 해주는 다양한 메서드에 대해서 알아보자
csrf()
: csrf 공격에 대한 설정을 하는 메서드..csrf((csrf) -> {
csrf.disable();
})
세션을 사용하지 않는다면 csrf에 대해 안전하기 때문에 보통은 disable을 해둔다.authorizeHttpRequests()
: http 요청에 대한 인증을 주로 다룬다..authorizeHttpRequests((httpRequest) -> {
httpRequest.requestMatchers("somePath").authenticated();
httpRequest.requestMatchers("somePath").hasAnyRole("ADMIN", "MANAGER");
httpRequest.requestMatchers("somePath").hasRole("ADMIN");
httpRequest.anyRequest().permitAll();
})
.requestMatchers(String)
: 매개변수로 path를 넣어준다. 해당 경로에 대한 요청에 대해서 다룬다.**.authenticated()
: 일단 인증만 되어있으면 해당 path 요청을 마음대로 할 수 있다.****.hasAnyRole(String, String...)
: 매개변수로 권한이름을 넣어준다. 갯수는 상관없다. 해당 권한들 중 하나라도 가진 사람들만 이 요청을 할 수 있다.**.hasRole(String)
: 매개변수로 권한이름을 넣어준다. 딱 하나만 적는다. 해당 권한을 가지고 있는 사람들만 이 요청을 할 수 있다..anyRequest()
: requestMatchers()
에 적힌 path들을 제외하고 나머지 모든 경로에 대해서 다룬다..permitAll()
: 아무런 권한이 없어도 전부 요청을 사용할 수 있다.