
Spring Security - 아키텍쳐 AuthenticationManager Authentication Spring Security에서 인증 (Authenticaiton) 은 AuthenticationManager가 담당한다. AuthenticationManager 인자로 받은 Authentication 객체가 유저에 대한 인증 정보를 담고있다. 해당 인증 정보가 유효하다면 UserDetailsService에서 Return한 객체 [Principal] 을 담고있는 Authentication 객체를 리턴한다. 기본 구현체는 ProviderManager 를 사용한다. 직접 AuthenticationManager를 구현해도 되지만 대부분의 Application에서 기본 구현체 정도에서 해결이 된다. 직접 ..

Spring Security - ArcheTecher_SecurityContextHolder Authentication SecurityContextHolder Security Context 제공, 기본적으로 ThreadLocal을 사용한다. 기본 전략은 ThreadLocal 기반으로 동작한다. SecurityContextHolder를 통해 SecurityContext에 접근할 수 있다. SecurityContext Authentication을 제공한다. Authentication Spring Security에서 인증을 거치고난 뒤의 사용자의 인증정보를 Principal 이라고 한다. 이러한 Principal을 감싸고 있는 객체이다. Printcipal 외에도 GrantedAuthorities (사용자 권..

Spring Security - Test 2 Spring Security Test Form Login 기능 formLogin 기본설정을 사용하고 있지만 password, url 등 formLogin 과 관련된 설정을 커스터마이징이 가능하다. 그러한 설정한 내용들이 제대로 동작하는지 테스트가 가능하다. FormLogin spring-security-test의 formLogin june/1234 로 formLogin 을 시도하면 폼 로그인이 성공하는것을 기대하는 테스트 코드 이다. 아래의 코드를 살펴보자. 기존 테스트들은 get(), post(), put() 등 httpMethod와 관련된 method를 사용하였지만 spring-security-test 의 formLogin()을 사용한다. user(): 유..

Spring Security - Test 1 기존의 테스트 방법 애플리케이션을 실행 웹 브라우저에서 직접 확인 코드가 변경될때마다 유저를 다시 생성해주고, url 하나하나에 일일히 접근해야한다. 매우 번거롭다 소스코드를 사용해서 테스트를 진행하도록 방법을 변경하자. 의존성 추가 spring-security-test 는 version관리가 되고있지 않다. 따라서 버전을 명시해주는것이 좋다. 테스트 코드 JUnit을 활용하여 index 페이지에 대한 테스트 진행하는 매우 간단한 코드이다. 하지만 이때 사용자의 인증 정보를 TEST 하려면 어떻게 해야 할까 ? spring-security-test 에서 제공하는 with method를 활용하자. with() method를 이용해 유저 인증정보를 Mocking ..