[SpringSecurity] 어노테이션 정리 (1)

해니·2024년 5월 27일
0

SpringBoot

목록 보기
13/24
post-thumbnail

@Bean, @Configuration

  • 수동으로 스프링 컨테이너에 빈을 등록한다.
  • 애플리케이션 전범위적으로 사용되는 클래스나 다형성을 활용하여 여러 구현체를 빈으로 등록 할 때 사용된다.
  • 1개 이상의 @Bean을 제공하는 클래스의 경우, 반드시 @Configuration을 명시해 주어야 싱글톤이 보장된다.



@EnableWebSecurity

  • web security 구성정보를 활성화하기 위해 사용된다.
  • 스프링에 인증 및 권한을 제공하는 보안 구성을 적용하도록 신호를 보낸다.

Add this annotation to an @Configuration class to have the Spring Security configuration defined in any WebSecurityConfigurer or more likely by exposing a SecurityFilterChain bean:

WebSecurityConfigurer 에 Spring Security 구성을 정의하거나 SecurityFilterChain 빈을 노출하여 정의하려면 @Configuration 클래스에 이 주석을 추가하세요.



@EnableMethodSecurity

  • 스프링 시큐리티 5.6 부터 사용 가능한, @EnableGlobalMethodSecurity의 향상된 버전
  • 모호한 보안 설정을 피하기 위해 애노테이션 충돌을 체크한다.
  • 함수에 권한 처리 애노테이션을 붙일 수 있게할지 말지에 관한 설정을 담당한다.

메서드 시큐리티 (Method Security)

  • 애플리케이션 내부의 메서드 혹은 함수에 보안설정을 하는 것
  • 스프링 시큐리티에서 설정한 권한에 맞는 사용자만 해당 메서드를 사용할 수 있게 된다.



@RequiredArgsConstructor

  • final 혹은 @NotNull이 붙은 필드의 생성자를 자동으로 만들어준다.

// @RequiredArgsConstructor 사용
@Service
@RequiredArgsConstructor
public class TestService {
    private final TestRepository1 testRepository1;
    private final TestRepository2 testRepository2;
}

// 생성자(Constructor) 방식
@Service
public class TestService {
    private final TestRepository1 testRepository1;
    private final TestRepository2 testRepository2;

    @Autowired
    public TestService(TestRepository1 testRepository1, TestRepository2 testRepository2) {
        this.testRepository1 = testRepository1;
        this.testRepository2 = testRepository2;

    }
}





출처
@EnableWebSecurity 애노테이션이란?
Method Security of 스프링 시큐리티
최신 Spring Security 사용법 - SecurityFilterChain
[Spring Security] 4. 권한 처리
[Spring] 빈 등록을 위한 어노테이션 @Bean, @Configuration, @Component 차이 및 비교 - (1/2)
[스프링, Spring] @RequiredArgsConstructor 어노테이션

profile
💻 ⚾️ 🐻

0개의 댓글