2016-10-24 39 views
5

Tôi đã thực hiện xác thực trong ứng dụng khởi động mùa xuân của tôi với Spring Security.Làm thế nào để tắt bảo mật mùa xuân trong ứng dụng khởi động mùa xuân

Các lớp học chính kiểm soát xác thực nên được 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()); 
    } 

Kể từ khi tôi đang làm OAuth, tôi có AuthServerConfigResourceServerConfig là tốt. Lớp ứng dụng chính của tôi trông giống như sau:

@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); 
    } 
} 

Vì chúng tôi đang thực hiện hợp nhất mã, chúng tôi cần tạm thời tắt xác thực. Tuy nhiên, tôi đã thử các phương pháp sau và không có gì có vẻ hiệu quả. Tôi vẫn nhận được 401 khi tôi nhấn những url còn lại này.

  1. Nhận xét tất cả chú thích trong các lớp liên quan đến bảo mật bao gồm @Configuration, @EnableWebSecurity. Trong Spring boot Security Disable security, đề xuất ở dưới cùng là thêm @EnableWebSecurity sẽ DISABLE auth mà tôi không nghĩ là có ý nghĩa gì. Cố gắng nó anyway, đã không làm việc.

  2. Sửa websecurityconfig bằng cách loại bỏ tất cả các công cụ bảo mật và chỉ làm http .authorizeRequests() .anyRequest().permitAll();

Disable Basic Authentication while using Spring Security Java configuration. Không giúp được gì.

  1. Di an ninh tự động cấu hình

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

giống như những gì họ đã làm trong disabling spring security in spring boot app. Tuy nhiên, tôi nghĩ tính năng này chỉ hoạt động với spring-boot-actuator mà tôi không có. Vì vậy, không thử điều này.

Cách chính xác vô hiệu hóa bảo mật mùa xuân là gì?

+1

Thêm '@ EnableWebSecurity' vô hiệu hóa mùa xuân Boot cấu hình bảo mật tự động. Trong trường hợp của bạn, bạn đã có chú thích này, do đó bạn không tận dụng cấu hình tự động. Tôi khuyên bạn nên thử nhận xét '@ EnableWebSecurity' từ lớp của bạn và loại trừ' SecurityAutoConfiguration.class' khỏi cấu hình tự động. –

+0

@MaciejWalkowiak Tôi có nên loại trừ SecurityAutoConfiguration.class trong lớp ứng dụng không? – ddd

+0

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

Trả lời

9

Như @Maciej Walkowiak đề cập, bạn nên làm điều này cho các lớp học chính của bạn:

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

Nó hoạt động sau khi thêm điều này vào chính của tôi Lớp ứng dụng và nhận xét ra '@ EnableWebSecurity' trong lớp securityconfig của tôi giống như những gì @MaciejWalkowiak nói. – ddd

3

thử này

1-> Bình luận chú thích @EnableWebSecurity trong cấu hình bảo mật của bạn

// @ EnableWebSecurity

2-> Thêm những dòng này trong cấu hình bảo mật của bạn

spring.security.enabled = false

management.security.kích hoạt = false

security.basic.enabled = false

Các vấn đề liên quan