在“OAUTH2”启用的启动应用程序中禁用身份验证

时间:2018-01-04 07:26:02

标签: spring spring-boot spring-security oauth-2.0

如何在启用“OAUTH2”的spring-boot应用程序中禁用身份验证? 这通常是测试或构建阶段所必需的。

1 个答案:

答案 0 :(得分:1)

当我们想要进行测试/构建并且我们没有即时可用的OAuth2令牌时,这是一个有效的场景。 以下是要遵循的步骤:

  1. 创建没有OAuth2配置的YAML文件(即application-{profile_name}.yml)并在其中添加以下属性:

    Security.ignored = /** 
    security.basic.enable=false
    
  2. 添加绕过HTTP / S请求授权的类。注意:此类应具有相同的配置文件名称(即{profile_name})。

    @Profile({"profile_name"})
    public class DisableOAuth2Config {
    
        @Bean
        public ResourceServerConfigurer resourceServerConfigurer() {
            return new ResourceServerConfigurerAdapter() {
                @Override
                public void configure(HttpSecurity http) throws Exception {
                    http
                        .authorizeRequests()
                            .antMatchers("/**").permitAll();
                }
            };
        }
    }
    
  3. 在我们仍希望获得安全性的Profile课程中提供SecurityConfiguration@Profile({"local","dev","aws"}),这将区分启用/禁用安全性的配置文件。

  4. 注意:请检查注释@EnableResourceServe@EnableWebSecurity@EnableGlobalMethodSecurity(prePostEnabled = true)。它们应仅在SecurityConfiguration课程中可用。不是多个地方,而不是SpringBoot类。