목록Spring/Spring Security (3)
땃쥐네
1. 의문점 @GetMapping("user") fun user(authentication: Authentication): OAuth2User { val token = authentication as OAuth2AuthenticationToken val user = token.principal return user } 스프링 시큐리티를 사용할 때, Authentication 객체를 컨트롤러에서 바로 바인딩받아 사용할 수 있다.그런데 이 Authentication 객체는 어떻게 주입되는걸까? 2. 디버거로 찾기: 어느 HandlerMethodArguemntResolver가 작동했을까? 컨트롤러의 파라미터 바인딩 동작 확인은 어떤 HandlerMetho..
자바, 순수 코틀린 문법을 사용하다보면 스프링 시큐리티 필터체인을 작성할 때 다음과 같이 작성해야한다. @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests((authorize) -> authorize .requestMatchers("/login").permitAll() .anyRequest().authenticated() ); return http.build(); } 물론 이것도 괜찮긴 한데... 람다 표현식을 체이닝을 통해 넣어주는 식이기도 하고 가독성이 썩 좋지는 않다.import org.springframework.se..
dependencies { // spring security implementation("org.springframework.boot:spring-boot-starter-security") testImplementation("org.springframework.security:spring-security-test") } gradle의 경우 buiild.gradle 또는 build.gradle.kts maven의 경우 pom.xml 파일에 스프링부트 시큐리티 의존성을 추가 해보면 여러가지 일들이 일어난다. 이를 가장 정확히 설명하는 문서는 스프링 시큐리티의 공식 문서의 getting-started - Runtime Expectations 단락에 있다. 여기선 간단하게 당장 개발하면서 체감할 수 있는 내용만..