2022년 5월 16일 TIL

yshjft·2022년 5월 16일
0

데브코스 TIL

목록 보기
32/45

보안

인증

사용자의 신원을 확인하는 과정

익명 영역

사용자의 신원과 무관한 기능들

인증 영역

사용자의 개인정보를 확인하고, 수정할 수 있는 등 신원에 민간함 기능 등

인가

  • 권한에 대한 내용
  • 적절한 권한이 부여된 사용자들만 특정 기능 수행 또는 데이터 접근을 허용한다.

Credential

민감한 정보는 암호화를 통해서 보호해야한다.

전송 레이어 보안

SSL

Spring Security

@EnableWebSecurity

  • WebSecurityConfigurerAdapter 추상 클래스를 상속하는 구현체에 @EnableWebSecurity 어노테이션을 추가
  • 기본적인 Spring Security 설정이 자동으로 추가되며, 개별 설정을 override 할 수 있다.

ignoring()

FilterChainProxy는 스프링 Security 진입점과 같은 역할로서 요청 처리할 FilterChain 구성 및 실행한다. 하지만 모든 요청에 FilterChain 구성 및 실행은 비효율적이므로 예외 대상을 지정할 수 있다. 이 때 사용하는 것이 ignoring()이다.

사용 경우

  • Spring Security 필터 체인을 적용하고 싶지 않은 리소스에 대해 설정
  • 일반적으로 정적 리소스에 적요(.html, .css 등)

기본 로그인 계정

기본 로그인 계정을 추가하지 않으면 맨번 랜덤으로 비밀번호가 생성되고 로그인할 때 이를 사용해야 한다.

application.yml을 이용한 설정

spring:
  application:
    name: spring security 01
  thymeleaf:
    cache: true
  security:
    user:
      name: user
      password: user123
	  roles: USER

이 경우 다수의 사용자를 지정할 수 없다.

직접 설정

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
       auth.inMemoryAuthentication()
               .withUser("user").password("{noop}user123").roles("USER")
               .and()
               .withUser("admin").password("{noop}admin123").roles("ADMIN");
}

ThymeLeaf 확장

thymeleaf-extras-springsecurity5 라이브러리를 추가하면 Thymeleaf View에서 Spring Security 관련 기능을 쉽게 사용할 수 있다.

profile
꾸준히 나아가자 🐢

0개의 댓글