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 = false 및 management.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