2016-10-24 17 views
5

私はSpring SecurityでSpring起動アプリケーションで認証を実装しました。認証を制御Spring起動アプリケーションでSpringセキュリティを無効にする方法

メインクラスはwebsecurityconfigする必要があります。

@Configuration 
@EnableWebSecurity 
@PropertySource(value = { "classpath:/config/application.properties" }) 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 


    @Autowired 
    private RestAuthenticationSuccessHandler authenticationSuccessHandler; 
    @Autowired 
    private RestAuthenticationEntryPoint restAuthenticationEntryPoint; 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http 
      .httpBasic() 
      .and() 
      .csrf().disable() 
      .sessionManagement().sessionCreationPolicy(
        SessionCreationPolicy.STATELESS) 
      .and() 
      .exceptionHandling() 
      .authenticationEntryPoint(restAuthenticationEntryPoint) 
      .and() 
      .authorizeRequests() 
       .antMatchers("/").permitAll() 
       .antMatchers("/login").permitAll() 
       .antMatchers("/logout").permitAll() 
       .antMatchers("/ristore/**").authenticated() 
       .anyRequest().authenticated() 
       .and() 
      .formLogin() 
       .successHandler(authenticationSuccessHandler) 
       .failureHandler(new SimpleUrlAuthenticationFailureHandler()); 
    } 

私はOAuthのをやっておりますので、私もAuthServerConfigResourceServerConfigを持っています。

@SpringBootApplication 
@EnableSpringDataWebSupport 
@EntityScan({"org.mdacc.ristore.fm.models"}) 
public class RistoreWebApplication extends SpringBootServletInitializer 
{ 
    @Bean 
    public WebMvcConfigurer corsConfigurer() { 
     return new WebMvcConfigurerAdapter() { 
      @Override 
      public void addCorsMappings(CorsRegistry registry) { 
       registry.addMapping("/**").allowedOrigins("*"); 
      } 
     }; 
    } 
    public static void main(String[] args) 
    { 
     SpringApplication.run(RistoreWebApplication.class, args); 
    } 

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(RistoreWebApplication.class); 
    } 
} 

我々はコードの統合を行っているので、我々は一時的に認証をオフにする必要があります。私の主なアプリケーションクラスは次のようになります。しかし、私は次の方法を試したが、何も動作していないようだ。私はこれらの残りのapiのURLを打つときに私はまだ401を得ています。

  1. コメントアウト@Configurationなど、セキュリティに関連するクラス内のすべての注釈を、@EnableWebSecuritySpring boot Security Disable securityでは、それは私が意味をなさないと思う認証を無効にします@EnableWebSecurityを追加する下部に示唆された。とにかくそれを試して、動作しませんでした。

  2. は、すべてのセキュリティのものを除去することにより、websecurityconfigを変更し、唯一 http .authorizeRequests() .anyRequest().permitAll();

Disable Basic Authentication while using Spring Security Java configurationを行います。助けにもならない。

  • セキュリティの自動設定

    @EnableAutoConfigurationを削除({= org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class、 org.springframework.bootを除外する。 actuate.autoconfigure.ManagementSecurityAutoConfiguration.class})彼らはdisabling spring security in spring boot appに何をしたかのような

  • 。しかし、私はこの機能は、私が持っていないspring-boot-actuatorでのみ動作すると思います。だからこれを試していない。

    スプリングセキュリティを無効にする正しい方法は何ですか?

    +1

    EnableWebSecurity'春ブーツセキュリティ自動設定を無効にします@ 'を追加。あなたの場合は、すでにこの注釈がありますので、自動設定を活用しないでください。クラスから '@ EnableWebSecurity'をコメントアウトし、' SecurityAutoConfiguration.class'を自動設定から除外することをお勧めします。 –

    +0

    @MaciejWalkowiakアプリケーションクラスのSecurityAutoConfiguration.classを除外すべきですか? – ddd

    +0

    [this](https://stackoverflow.com/questions/25639188/disable-basic-authentication-while-using-spring-security-java-configuration#25740336) – rocksteady

    答えて

    9

    @Maciej Walkowiakが述べたように、あなたはあなたのメインクラスのためにこれを行う必要があります。

    @SpringBootApplication(exclude = org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class) 
    public class MainClass { 
    
    +0

    これを私のメインに追加した後で動作します@MaciejWalkowiakが言ったような私のsecurityconfigクラスの '@ EnableWebSecurity'をコメントアウトしています。 – ddd

    3

    は、セキュリティの設定でこの

    1 - >コメント注釈@EnableWebSecurityを試してみてください

    // @ EnableWebSecurity

    2 - >セキュリティの設定= falseを

    management.securityをspring.security.enabled

    にこれらの行を追加します。有効= falseを

    security.basic.enabled = falseを

    関連する問題