Как отключить 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.
прокомментируйте все аннотации в классах, связанных с безопасностью, включая
@Configuration
,@EnableWebSecurity
. В Spring boot Security отключить безопасность, было предложено внизу добавить@EnableWebSecurity
отключит auth, который, я думаю, не имеет никакого смысла. Все равно попробовал, не получилось.изменить websecurityconfig, удалив все материалы безопасности и только сделать
http .authorizeRequests() .anyRequest().permitAll();
отключить базовую аутентификацию при использовании Spring Security Java configuration. Не помогло.
-
удалить 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