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>
次が表示されますException:
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
})
ステップ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/
AntMatchers( "/")を使用してすべてへのアクセスを許可します
protected void configure(HttpSecurity http) throws Exception {
System.out.println("configure");
http.csrf().disable();
http.authorizeRequests().antMatchers("/").permitAll();
}
私は単にsecurity.ignored=/**
をapplication.properties
に追加しましたが、それが魅力でした。
セキュリティを回避するために、注釈を使用できます。 configureクラスの上でこのアノテーションを使用してください:
@EnableWebSecurity
例えば:
@EnableWebSecurity
@Configuration
public class AuthFilter{
// configured method
}
以下の2つの手順に従って、プロジェクトでスプリングセキュリティを切り替えるように設定を実行できます。
ステップ1: SecurityConfigクラスの上に@ConditionalOnProperty
注釈を追加します。以下を参照してください:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity (prePostEnabled = true)
@ConditionalOnProperty (name = "myproject.security.enabled", havingValue = "true", matchIfMissing = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// your security config
}
ステップ2:次の設定をapplication.properties
またはapplication.yml
ファイルに追加します。
application.properties
security.ignored=/**
myproject.security.enabled=false
または
application.yml
security:
ignored: /**
myproject:
security:
enabled: false
このエントリをapplication.propertiesに追加してバイパスするSpringboot Default Security
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
その後、認証ボックスはありません。 otrws、資格情報は次のとおりです:-user
および99b962fa-1848-4201-ae67-580bdeae87e9
(パスワードはランダムに生成されます)
Note: my springBootVersion = '1.5.14.RELEASE'
メインアプリに以下の行を追加します。
Activitiを使用していない場合は、org.activiti.spring.boot.SecurityAutoConfiguration.classを削除します。
同様に、spring-boot-actuatorを使用していない場合は、アクチュエータ用のものを削除します。
@EnableAutoConfiguration(exclude = {
org.activiti.spring.boot.SecurityAutoConfiguration.class,
org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class })
Application.ymlに以下の設定を追加して、うまくいきました。
security:
route-patterns-to-be-skipped:
- /**/*
これはapplication.propertiesのsecurity.route-paterns-to-be-skipped=/**/*
として変換できます
次のクラスをコードに追加します
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の追加
security.ignored=/**
security.basic.enabled=false
management.security.enabled=false