我正在使用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身份验证页面。 有人可以让我知道我的代码有什么问题吗?
答案 0 :(得分:0)
问题是您的静态资源(角度代码)受到了保护。您必须先允许访问您的角度应用程序。本质上,index.html需要呈现给浏览器-加载潜在的角度依赖性。
完成后,您可以使应用程序的某些部分受到保护,而某些部分则不受保护(进行运行状况检查,允许用户登录等)。
实际的实现将基于您在春季内如何设置应用程序。
更多信息:Serving static web resources in Spring Boot & Spring Security application