Spring Security Azure活动目录

时间:2018-09-12 07:31:47

标签: spring-boot spring-security azure-active-directory

能否请您提出如何增加超时时间的建议。我正在获得例外,这不是每次都会发生。我使用Spring Boot 2.0.4和azure Active Directory版本2.0.5(最新)将Angular 5作为前端和后端。

com.nimbusds.jose.RemoteKeySourceException:无法检索远程JWK集:读取超时。以下是我的源代码。

谢谢。

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
    import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

    import com.microsoft.azure.spring.autoconfigure.aad.AADAuthenticationFilter;

    @EnableWebSecurity
    @EnableGlobalMethodSecurity(securedEnabled = true,prePostEnabled = true)
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private AADAuthenticationFilter aadAuthFilter;


    @Override
    protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().antMatchers("/api/ppo/dashboard/dashboardstats").permitAll();


 http.authorizeRequests().antMatchers("/api/ppo/dashboard/castats").permitAll();
     http.authorizeRequests().antMatchers("/api/ppo/authenticate/privileges").permitAll();
     http.authorizeRequests().antMatchers("/api/ppo/**").authenticated();
    //http.authorizeRequests().antMatchers("/api/ppo/autenticate/**").permitAll();

    http.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
        .logoutSuccessUrl("/").deleteCookies("JSESSIONID").invalidateHttpSession(true);

    //http.authorizeRequests().anyRequest().permitAll();
    http.csrf().disable();
     http.cors();
    // http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());

    http.addFilterBefore(aadAuthFilter, UsernamePasswordAuthenticationFilter.class);

}
@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/api/ppo/**").allowedMethods("GET", "POST", "PUT", "DELETE").allowedOrigins("*")
                    .allowedHeaders("*");
        }
    };
}

0 个答案:

没有答案