[spring-security] 스프링 부트 보안 보안 비활성화

security.basic.enabled = false 를 사용하여 다음 종속성이있는 Spring Boot 프로젝트에서 보안을 비활성화 할 때 :

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

다음 예외가 표시됩니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.actuate.autoconfigure.ManagementSecurityAutoConfiguration$ManagementWebSecurityConfigurerAdapter': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter.setObjectPostProcessor(org.springframework.security.config.annotation.ObjectPostProcessor); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.config.annotation.ObjectPostProcessor] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

이 예외를 수정하려면 management.security.enabled = false 속성을 추가해야했습니다 . 내 이해는 액추에이터가 클래스 경로에있을 때 security.basic.enabled = falsemanagement.security.enabled = false 모두 보안 을 비활성화하도록 설정해야한다는 것입니다.

내 이해가 잘못된 경우 누군가 알려주시겠습니까?



답변

잘 작동하는 것처럼 보이는 것은 다음을 application-dev.properties포함 하는 파일 을 만드는 것 입니다.

security.basic.enabled=false
management.security.enabled=false

그런 다음 dev프로필을 사용하여 Spring Boot 앱을 시작 하면 로그온 할 필요가 없습니다.


답변

패키지에 spring-boot-actuator가있는 경우 다음을 추가해야합니다.

@EnableAutoConfiguration(exclude = {
        org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
        org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration.class})

이전 Spring-boot에서는 클래스가 ManagementSecurityAutoConfiguration.

최신 버전에서는 다음과 같이 변경되었습니다.

@SpringBootApplication(exclude = {
        org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class,
        org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration.class}
        )


답변

종속성으로 보안이 필요하지만 Spring Boot가이를 구성하지 않도록하려면 다음 제외를 사용할 수 있습니다.

    @EnableAutoConfiguration(exclude = {
        org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class
    })


답변

스프링 부트 2 사용자의 경우

@EnableAutoConfiguration(exclude = {
    org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})


답변

들어 봄 부팅이 개 다음과 같은 속성에 사용되지 않습니다 application.yml 구성

  security.basic.enabled: false
  management.security.enabled: false

Sprint Boot 2 Basic + Actuator Security에 대한 보안을 비활성화하려면 주석 기반 제외 대신 application.yml 파일
에서 다음 속성을 사용할 수 있습니다 (@EnableAutoConfiguration (exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})).

  spring:
    autoconfigure:
      exclude[0]: org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
      exclude[1]: org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration

들어 application.properties 구문은 같은 것

spring.autoconfigure.exclude[0]=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration


답변

1 단계 : 보안 구성에서 @EnableWebSecurity 주석 주석

//@EnableWebSecurity

2 단계 :이를 application.properties 파일에 추가 합니다.

security.ignored=/**
spring.security.enabled=false
management.security.enabled=false
security.basic.enabled=false

자세한 내용은 http://codelocation.com/how-to-turn-on-and-off-spring-security-in-spring-boot-application/을 참조하십시오.


답변

코드에 다음 클래스 추가

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

/**
 * @author vaquar khan
 */
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests().antMatchers("/**").permitAll().anyRequest().authenticated().and().csrf().disable();
    }

}

그리고 application.properties의 insie는

security.ignored=/**
security.basic.enabled=false
management.security.enabled=false