이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. DB 연동 인증 처리(1): CustomUserDetailsService 데이터 계층으로부터 User 객체를 조회하고 UserDetails 타입으로 반환하려한다. UserDetails 타입의 구현체가 필요하다. AccountContext 생성 스프링 시큐리티에서는 UserDetails를 구현한 User 클래스를 제공한다. 이러한 User 클래스를 상속해 최종적으로 UserDetails를 상속 받도록 한다. package io.security.corespringsecurity.security.service; import io.security.corespringsecurity.domain.Account; import io.secur..
스프링 시큐리티/실전프로젝트 - 인증 프로세스 Form 인증 구현
이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. Form 인증 - 사용자 등록 / PasswordEncoder 비밀번호를 안전하게 암호화 하도록 제공 Spring Security 5.0 이전에는 기본 PasswordEncoder 가 평문을 지원하는 NoOpPasswordEncode (현재는 Deprecated) 생성 PasswordEncoder passwordEncoder = PasswordEncoderFactories.createDelegatingPasswordEncoder() 여러개의 PasswordEncoder 유형을 선언한 뒤, 상황에 맞게 선택해 사용할 수 있도록 지원하는 Encoder이다. 암호화 포맷 : {id}encodedPassword 알고리즘 종류: bcry..
이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. 정적 자원 관리 - WebIgnore 설정 js / css / image 파일 등 보안 필터를 적용할 필요가 없는 리소스를 설정 @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> { web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations()); }; } 권한이 없어도 된다는 점이 permitAll()과 유사하다. 하지만 차이점이 존재하는데 permitAll()의 경우 보안 필터를 거쳐 검사받지만, WebIgnore의 경우 보안 필터를 거치지 않는다.
이 글은 정수원님의 Infrean 강의를 학습한 내용을 정리하여 작성합니다. 프로젝트 Dependency pom.xml org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-thymeleaf org.thymeleaf.extras thymeleaf-extras-springsecurity5 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-devtools runtime true org.po..