Как отключить Spring Security в приложении Spring Boot

я реализовал аутентификацию в моем приложении Spring Boot с Spring Security.

основным классом, контролирующим аутентификацию, должен быть 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, у меня есть AuthServerConfig и ResourceServerConfig как хорошо. Мой основной класс приложения выглядит так:

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

поскольку мы делаем консолидацию кода, нам нужно временно отключить аутентификацию. Тем не менее, я пробовал следующие методы, и ничего не кажется работа. Я все еще получаю 401, когда я нажимаю эти URL-адреса REST api.

  1. прокомментируйте все аннотации в классах, связанных с безопасностью, включая @Configuration, @EnableWebSecurity. В Spring boot Security отключить безопасность, было предложено внизу добавить @EnableWebSecurity отключит auth, который, я думаю, не имеет никакого смысла. Все равно попробовал, не получилось.

  2. изменить websecurityconfig, удалив все материалы безопасности и только сделать http .authorizeRequests() .anyRequest().permitAll();

отключить базовую аутентификацию при использовании Spring Security Java configuration. Не помогло.

  1. удалить security auto config

    @EnableAutoConfiguration(исключить = { орг.springframework.сапог.автоконфигурация.безопасность.SecurityAutoConfiguration.класс, орг.springframework.сапог.приводить в действие.автоконфигурация.ManagementSecurityAutoConfiguration.класс})

как то, что они сделали в отключение spring security в приложении spring boot. Однако я думаю, что эта функция работает только с spring-boot-actuator которого у меня нет. Так что не пытайся.

как правильно отключить spring security?

2 ответов


Как упоминал @Maciej Walkowiak, вы должны сделать это для своего основного класса:

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

попробуй такое

1 - >комментарий аннотация @EnableWebSecurity в вашей конфигурации безопасности

/ / @EnableWebSecurity

2->Добавьте эти строки в конфигурацию безопасности

весна.безопасность.включено=false

управление.безопасность.включено=false

безопасность.основной.включено=false