web-dev-qa-db-ja.com

スプリングブートセキュリティセキュリティを無効にする

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 = falsemanagement.security.enabled = falseの両方を設定する必要があります。

私の理解が間違っている場合、誰かが私に知らせることができますか?

62
user3600073

また、うまくいくと思われるのは、以下を含むファイルapplication-dev.propertiesを作成することです。

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

その後、devプロファイルを使用してSpring Bootアプリを起動する場合、ログオンする必要はありません。

69
Wim Deblauwe

パッケージに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}
        )
54
Varesh

セキュリティを依存関係として必要としているが、Spring Bootでセキュリティを構成したくない場合は、この除外を使用できます。

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

スプリングブート2ユーザーの場合は、

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

ステップ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/

10
VK321

AntMatchers( "/")を使用してすべてへのアクセスを許可します

     protected void configure(HttpSecurity http) throws Exception {
            System.out.println("configure");
                    http.csrf().disable();
                    http.authorizeRequests().antMatchers("/").permitAll();
        }
3
Sarat Chandra

私は単にsecurity.ignored=/**application.propertiesに追加しましたが、それが魅力でした。

3
codereal

セキュリティを回避するために、注釈を使用できます。 configureクラスの上でこのアノテーションを使用してください:

@EnableWebSecurity

例えば:

@EnableWebSecurity
@Configuration
public class AuthFilter{
   // configured method 
}
3
Ramesh Babu

以下の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
0
Sahil Chhabra

このエントリを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'

0
Titus

メインアプリに以下の行を追加します。

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 })
0
CodeShadow

Application.ymlに以下の設定を追加して、うまくいきました。

security:
    route-patterns-to-be-skipped:
      - /**/*

これはapplication.propertiesのsecurity.route-paterns-to-be-skipped=/**/*として変換できます

0
Prasath Rajan

次のクラスをコードに追加します

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
0
vaquar khan