programing

봄에 @EnableWebSecurity를 사용하는 이유는 무엇입니까?

easyjava 2023. 3. 5. 10:29
반응형

봄에 @EnableWebSecurity를 사용하는 이유는 무엇입니까?

Spring 문서에 따르면

은 하다 하다에 붙여주세요.@Configuration security 의 스프링에 하기 위한 WebSecurityConfigurer 더 해서 더 많이 확장됩니다.WebSecurityConfigurerAdapter「 」 「 」 、 「 」 、 「 」

이 or or or or@EnableWebSecurity스프링 시큐리티

건달지 @EnableWebSecurity과 패스워드를 behavior

저도 같은 .@EnableWebSecurity그리고 없이@EnableWebSecurity.

누가 이 주석이 정확히 무엇에 대한 것인지 설명해 줄 수 있나요?

@EnableWebSecurity는 마커 주석입니다.을 수 있게 @Configuration@Component가 글로벌클래스에 자동으로 WebSecurity.

, 반의 어느 쪽에도 은 반, 반, 반, 반, 반의 어느 쪽에도 주석을 달지 않습니다.@EnableWebSecurity 및 를 입니다.

네, 이것이 기본 동작입니다.클래스 경로를 살펴보면 해당 주석이 표시된 다른 클래스를 찾을 수 있습니다(의존관계에 따라 다름).

  • SpringBootWebSecurityConfiguration;
  • FallbackWebSecurityAutoConfiguration;
  • WebMvcSecurityConfiguration.

이러한 설정을 주의 깊게 검토하거나 필요한 설정을 끄거나 동작을 덮어씁니다.

Spring Boot Reference Guide에 자세히 설명되어 있습니다.를 사용하여 검색하면@EnableWebSecurity:

웹 응용 , 「」를 가지는 합니다.@EnableWebSecurity(인증 매니저의 설정이나 액튜에이터의 시큐러티는 무효가 되지 않습니다). , , 외부 합니다.WebSecurityConfigurerAdapter(예: 폼 기반 로그인을 추가합니다).

...

@EnableWebSecurity, 액튜에이터의 시큐러티를 로 하면, 의 액튜에이터를 하지 않는 한, 전체의 폼 로그인을 할 수 .WebSecurityConfigurerAdapter.

...

「」를하는 @Configuration@EnableWebSecurity응용 프로그램 내 어디에서나 Spring Boot의 기본 웹 앱 보안 설정이 꺼집니다(Actuator의 보안은 활성화되어 있습니다).하려면 , 「」의 을 설정해 .security.*).SecurityProperties사용 가능한 설정에 대한 자세한 내용을 보려면) 및 공통 응용 프로그램 속성의 SECURITY 섹션을 참조하십시오.

기본 웹 애플리케이션 보안 구성을 끄고 사용자 설정을 추가하는 것이 목적이라고 합니다.

답은 Spring Boot 사용 여부에 따라 달라집니다.

스프링 부트 없이 스프링 및 스프링 보안을 사용하는 경우 @EnableWebSecurity는 원래 질문에서 설명한 바와 같이 웹 애플리케이션의 기본 보안을 활성화하기 위해 여러 콩, 필터 체인 등을 자동으로 정의 및 구성합니다.

Spring Boot 를 사용하고 있는 경우는, 자동 설정 클래스(https://github.com/spring-projects/spring-boot/tree/main/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security) 를 참조해 주세요.시큐러티 콩은 자동적으로 설정됩니다.@EnableWebSecurity는 필요 없습니다.실제로 Boot에서는 일반적으로 Spring의 @Enable* 주석이 필요하지 않습니다.

...Spring Boot의 자동 구성 클래스가 보안을 설정하는 방식이 마음에 들지 않는 한.@EnableWebSecurity는 Spring Security의 설정을 우선하여 Spring Boot 자동 설정을 백오프시킵니다.(이는 기존 Spring Security 애플리케이션을 Spring Boot로 변환하여 변경을 최소화하는 경우에 바람직할 수 있습니다.)

Spring Boot의 자동설정 디폴트 동작과 @Enable Web Security 디폴트 동작은 매우 비슷합니다.따라서 주석을 제거할 때 차이가 없습니다.

@EnableWebSecurity는 스프링 보안 Java 설정에 사용됩니다.이 주석 추가:@configuration보안 Java 클래스뿐만 아니라WebSecurityConfigurerAdapter.

덮어쓰기configure(WebSecurity web)&configure(HttpSecurity http)이는 다음과 같은 xml 기반 구성을 대체하는 것입니다.<http>그리고.<form login>이렇게 하면 특정 URL에서 들어오는 요청 URL을 제한할 수 있습니다.또한 폼 기반 로그인도 가능합니다.

언급URL : https://stackoverflow.com/questions/44671457/what-is-the-use-of-enablewebsecurity-in-spring

반응형