将PCF SSO服务与EnableOAuth2Sso注释一起使用时,如何排除Angular组件?

时间:2018-10-29 21:18:41

标签: angular spring-boot single-sign-on spring-security-oauth2 pivotal-cloud-foundry

我正在使用Angular和Spring Boot通过Rest API构建单页应用程序。这是我的SpringBoot应用程序:

@SpringBootApplication
@Controller

public class AptSsoAppApplication {

public static void main(String[] args) {
        if ("true".equals(System.getenv("SKIP_SSL_VALIDATION"))) {
            SSLValidationDisabler.disableSSLValidation();
        }
        SpringApplication.run(AptSsoAppApplication.class, args);
    }
@EnableOAuth2Sso
    @Configuration
    protected static class SecurityConfiguration extends WebSecurityConfigurerAdapter {
      @Override
      protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/health").permitAll()
            .anyRequest().authenticated().and()
          .csrf()
            .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
      }
    }

Angular项目包含组件。该组件之一是为进行健康检查而设计的。 SpringBoot应该忽略SSO的健康组件。

我遵循以下示例:https://spring.io/guides/tutorials/spring-security-and-angular-js/

对于所有Angular路由,将显示SSO身份验证页面。 有人可以让我知道我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

问题是您的静态资源(角度代码)受到了保护。您必须先允许访问您的角度应用程序。本质上,index.html需要呈现给浏览器-加载潜在的角度依赖性。

完成后,您可以使应用程序的某些部分受到保护,而某些部分则不受保护(进行运行状况检查,允许用户登录等)。

实际的实现将基于您在春季内如何设置应用程序。

更多信息:Serving static web resources in Spring Boot & Spring Security application