Mam zaimplementowane uwierzytelnianie w mojej aplikacji Spring Boot z Spring Security.Jak wyłączyć Spring Security w Spring Boot Application
Uwierzytelnianie kontrolowania Główna klasa powinna być 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());
}
Ponieważ robię OAuth, mam AuthServerConfig
i ResourceServerConfig
również. Moja główna klasa aplikacji wygląda następująco:
@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);
}
}
Ponieważ przeprowadzamy konsolidację kodu, musimy chwilowo wyłączyć uwierzytelnianie. Jednak próbowałem następujące metody i nic nie wydaje się działać. Wciąż dostaję 401 kiedy trafiam te adresy URL odpoczynku.
Komentarz wszystkie adnotacje w zajęciach związanych z bezpieczeństwem w tym
@Configuration
,@EnableWebSecurity
. W wersji Spring boot Security Disable security zasugerowano na dole dodając, że@EnableWebSecurity
WYŁĄCZ AUTOH, co nie wydaje mi się sensowne. Próbowałem to mimo wszystko, nie działa.Zmienić websecurityconfig usuwając wszystkie rzeczy zabezpieczeń i tylko zrobić
http .authorizeRequests() .anyRequest().permitAll();
Disable Basic Authentication while using Spring Security Java configuration. To też nie pomaga.
usuwania zabezpieczeń automatycznej konfiguracji
@EnableAutoConfiguration (wyklucza = { org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class, org.springframework.boot. actuate.autoconfigure.ManagementSecurityAutoConfiguration.class})
jak to, co zrobili w disabling spring security in spring boot app. Jednak myślę, że ta funkcja działa tylko z spring-boot-actuator
, której nie mam. Więc nie próbowałem tego.
Jaki jest właściwy sposób wyłączenia bezpieczeństwa sprężynowego?
Dodanie '@ EnableWebSecurity' wyłącza konfigurację Wiosna Boot auto bezpieczeństwo. W twoim przypadku masz już tę adnotację, więc i tak nie korzystasz z automatycznej konfiguracji. Sugeruję próbę skomentowania '@ EnableWebSecurity' z twojej klasy i wykluczenie' SecurityAutoConfiguration.class' z automatycznej konfiguracji. –
@MaciejWalkowiak Czy mogę wykluczyć SecurityAutoConfiguration.class w klasie aplikacji? – ddd
Spójrz na [to] (https://stackoverflow.com/questions/25639188/disable-basic-authentication-while-using-spring-security-java-configuration#25740336) – rocksteady