私は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のをやっておりますので、私も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);
}
}
我々はコードの統合を行っているので、我々は一時的に認証をオフにする必要があります。私の主なアプリケーションクラスは次のようになります。しかし、私は次の方法を試したが、何も動作していないようだ。私はこれらの残りのapiのURLを打つときに私はまだ401を得ています。
コメントアウト
@Configuration
など、セキュリティに関連するクラス内のすべての注釈を、@EnableWebSecurity
。 Spring boot Security Disable securityでは、それは私が意味をなさないと思う認証を無効にします@EnableWebSecurity
を追加する下部に示唆された。とにかくそれを試して、動作しませんでした。は、すべてのセキュリティのものを除去することにより、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
でのみ動作すると思います。だからこれを試していない。
スプリングセキュリティを無効にする正しい方法は何ですか?
EnableWebSecurity'春ブーツセキュリティ自動設定を無効にします@ 'を追加。あなたの場合は、すでにこの注釈がありますので、自動設定を活用しないでください。クラスから '@ EnableWebSecurity'をコメントアウトし、' SecurityAutoConfiguration.class'を自動設定から除外することをお勧めします。 –
@MaciejWalkowiakアプリケーションクラスのSecurityAutoConfiguration.classを除外すべきですか? – ddd
[this](https://stackoverflow.com/questions/25639188/disable-basic-authentication-while-using-spring-security-java-configuration#25740336) – rocksteady