otp_part_1 open feign openfeign : netflix에서 개발한 서버끼리 rest api를 할때 사용 더 편하게 호출할 수 있게해줌. 해당 서비스를 가지고 인증 서버에 요청을 보내는 서비스 구현 openfeign implements implements로 org.spri...
Spring Security, Spring Security Otp(1)
Spring Security 를 이용한 OTP 인증 구현. 구성 클라이언트 : 백엔드 서버에 요청을 보내는 주체 (테스트 코드로 대체 한다.) 인증서버 : 사용자 자격을 증명하고 인증 토큰을 DB에서 조회(추후 SNS 서비스로 확장 가능) 비지니스 논리 서버...
Spring Security, Security Context Holder
SecurityContextHolder 인증된 사용자의 정보를 세션에 저장해놓는 객체 getContext() 메소드를 통해 Authentication 정보를 가져올 수 있다. Authentication : 사용자 인증 정보를 가지고 있는 객체 ...
Spring Security, 401 403
401, 403 에러가 발생했을 때 핸들링할 필터가 필요 SecurityFilterChain exceptionHandling : 각 발생 에러는 리다이렉트 시킬때 modal창을 띄우기 위한 url parameter을 가진다. authenticationEntryPoin...
Spring Security, Custom Form Login
defaultSecurityFilterChain defaultSecurityFilterChain : 메소드 안에 form login 설정 loginPage() : 커스텀한 view를 반환하는 end-point usernameParameter() : view 에서 form 에 담은 username에 해당하는 파라...
Spring Security, Authentication Success handler
AuthenticationSuccessHandler 인증에 성공했을 때 어떤 동작을 취할것인지 설정하는 핸들러 CustomSuccessHandler @Slf4j @Component public class CustomAuthenticationSuccessHandler implements AuthenticationSuccessHa...
Spring Security, Password Encoder
Password Encoder 실제 사용자의 password 정보는 암호화되어 저장되기 때문에 추가적인 검증 필요. AuthenticationProvider : UserDetailsService와 PasswordEncoder로 구성되어 있음. UserDetailsService : 사용자 세부 정...
Spring Security, Access Limit
authorizeHttpRequests 사용자 데이터 Entity_구성 사용자의 접근 제한을 하는부분 Spring Security에서 설정한 cors, csrf 설정이 테스트에서 예상밖으로 작동해서 httpSecurity()메소드를 생성하고 운영, 테스트에 따른 설정을 다르게함 @Slf4...
Spring Security, User Authentication
사용자 인증 구현 ENTITY_설계 CustomUserDetails getAuthorities() : 접근한 사용자의 권한들을 가져오는 메소드. @Getter @RequiredArgsConstructor public class CustomUserDetails implements UserDetails { private f...
Spring Security, Csrf
- Csrf(cross site request forgery) A 사이트에 로그인, 사용자 권한 획득 사용자가 웹 어플레케이션에 로그인 했다고 가정하며 사용자는 공격자에게 속아서 직업중인 같은 어플리케이션에서 작업을 실행하는 스크립트가 포함된 페이지가 열리면서 공격 Spring Security에서는 해당 공격을 막기 위한 ...