반응형
chapter 4 시프링 시큐리티
public class SecurityConfig extends WebSecurityConfigurerAdpater {
// WebSecurityConfigurerAdpater 상속 후 메소드들을 override 하여 스프링 시큐리티 세부 설정을 커스터마이징 할 수있다.
// configure(HttpSecurity http) -> 웹 요청 보안 처리
// configure(AuthenticationManagerBuiler auth) -> 유저 스토어 설정
}
웹 요청 보안 처리
http 요청 처리를 허용하기 전에 인가확인
- 로그인 페이지 url 설정
- 로그아웃 url 설정
- csrf 공격 방어 설정
유저 스토어 설정
inmemory : 메모리에 인증/인가 정보 저장
- DB : 정해진 인증 인가 쿼리/테이블 (users, authorities 등) -> 쿼리를 커스터마이징 할 수도 있다.
- LDAP : 사용자가 직접 LDAP서버에서 인증 받거나, 비밀번호를 비교하는 방법으로 인증
- 커스텀 명세 : 더 복잡한 관계에선 필터/AuthenticationManager/AuthenticationProvider/UserDetails+UserDetails 등을 커스텀해야한다.
Spring5에선 유저의 비밀번호를 암호화하여 저장해야 한다. (BCryptPasswordEncoder, StandardPasswordEncoder 등으로)
사용자 인지하기
- Principal 객체를 컨트롤러 메서드에 주입
- Authentication 객체를 컨트롤러 메서드에 주입
- Object 반환으로 인한 타입변환 필요
- @AuthenticationPrincipal 애노테이션을 컨트롤러 메서드에 지정
- 타입변환 불필요
- SecurityContextHolder를 사용해서 SecurityContext 얻기 (인증 토큰을 가져오기)
- 어플리케이션 전 영역에서 활용 가능
chapter 5 구성 속성 사용하기
5.1 자동-구성 세부 조정하기
스프링의 2가지 구성
빈 연결 : 컨테이너에서 빈을 선언하거나, 상호 간 주입 되는 방법을 선언하는 구성
- @Configuration + @Bean
- 속성 주입 : 컨테이너에서 빈의 속성 값을 설정하는 구성
- @Autowired
스프링 환경 추상화 : JVM 변수, 환경 변수, 명령행 인자, .yml 파일의 속성 정보를 한군데 모으고 -> 해당 정보를 필요로 하는 컨테이너 내부의 빈에게 전달
데이터 소스 구성
- 내장 서버 구성
- 로깅 구성
- 다른 속성 정보 값 가져오기
5.2 우리의 구성 속성 생성하기
속성 정보를 클래스에 바인딩하는 법
taco.orders.size: 10
@ConfigurationProperties(prefix="taco.orders")
public class xxxConfig {
private int size;
}
5.3 Profile 사용해서 구성하기
프로파일 별 속성 정의 : application-{profile명}.yml 으로 프로파일으로 해당 profile에 적당한 구성 속성을 정의 가능
Profile 활성화 하는 법
- 프로덕션 환경 : export SPRING_PROFILES_ACTIVE=prod
명령행 인자 : java -jar xxx.jar --spring.profiles.active=prod
Profile 별 빈 생성 : @Profile("profile명")
728x90
반응형
'개발서적' 카테고리의 다른 글
스프링 인 액션 - (4) (0) | 2022.08.11 |
---|---|
스프링 인 액션 - (3) (0) | 2022.08.10 |
스프링 인 액션 - (1) (0) | 2022.08.09 |
카프카, 데이터 플랫폼의 최강자 : 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지 (3) (0) | 2022.05.01 |
카프카, 데이터 플랫폼의 최강자 : 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지 (2) (0) | 2022.04.29 |
댓글