1

AngularとSpring Bootを使用して、Rest APIを使用して単一ページアプリケーションを構築しています。ここに私の構成はあります:EnableOAuth2Ssoアノテーションを使用してPCF SSOサービスを使用するときにURLを除外する方法は?

@SpringBootApplication 
@EnableOAuth2Sso 
public class AppConfig extends SpringBootServletInitializer implements ApplicationContextAware { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(AppConfig.class); 
    } 

    public static void main(String[] args) { 
     ApplicationContext appContext = SpringApplication.run(AppConfig.class); 
     context = appContext; 
    } 

    @Configuration 
    protected static class SecurityConfig extends WebSecurityConfigurerAdapter { 
     @Override 
     protected void configure(HttpSecurity http) throws Exception { 
      http.authorizeRequests() 
        .antMatchers("/healthcheck", "/").permitAll() 
        .antMatchers("/api/**").authenticated() 
        .anyRequest().authenticated(); 
     } 
    } 

} 

私が使用しているSSOサービスは、Pivo​​tal Cloud Foundry [PCF]によって提供されています。私はSecurityConfig

クラス

を含める前に、すべてが大丈夫でした。アプリが読み込まれるとすぐに、ユーザーはSSOログインページにリダイレクトされ、アプリにリダイレクトされます。しかし、私は認証から "健康チェック" URLを除外する必要があります。そのため、SecurityConfigクラスが含まれています。しかし、SSO認証はまったく機能しません。私は/ healthcheckにしか届くことができませんでした。

私はhttps://spring.io/guides/tutorials/spring-boot-oauth2/

誰かが私は私のコードと間違っているものを教えてくださいすることができ、この例に続きますか?

ありがとうございました。

答えて

1

私はそれを理解しました。私はEnableOAuth2SsoをWebSecurityConfigurerAdapterに移動しなければなりませんでした。このように:

@SpringBootApplication 
public class AppConfig extends SpringBootServletInitializer implements ApplicationContextAware { 

    @Override 
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 
     return application.sources(AppConfig.class); 
    } 

    public static void main(String[] args) { 
     ApplicationContext appContext = SpringApplication.run(AppConfig.class); 
     context = appContext; 
    } 

    @Configuration 
    @EnableOAuth2Sso 
    protected static class SecurityConfig extends WebSecurityConfigurerAdapter { 
     @Override 
     protected void configure(HttpSecurity http) throws Exception { 
      http.authorizeRequests() 
        .antMatchers("/healthcheck", "/").permitAll() 
        .antMatchers("/api/**").authenticated() 
        .anyRequest().authenticated(); 
     } 
    } 

} 
関連する問題