Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring安全性,使用http basic保护特定api路径,使用discord ouath2保护其他api路径_Java_Spring_Spring Boot_Spring Security_Discord - Fatal编程技术网

Java Spring安全性,使用http basic保护特定api路径,使用discord ouath2保护其他api路径

Java Spring安全性,使用http basic保护特定api路径,使用discord ouath2保护其他api路径,java,spring,spring-boot,spring-security,discord,Java,Spring,Spring Boot,Spring Security,Discord,我正在尝试使用spring security配置两种身份验证方法 端点/执行器/**应使用用户/密码进行身份验证 其他方法应为ouath2,以使用discord进行身份验证(获取AccessToken) 这是我的配置() 通常,当我仅使用代码(1)运行代码时,没有(2)端点/执行器使用httpBasic进行适当保护 当我只使用代码(2)时,我可以从discord获得AccessToken, 但当我想要组合它时,我有一个问题,端点/执行器需要不一致的身份验证,而不是http basic 我尝试将它

我正在尝试使用spring security配置两种身份验证方法

  • 端点/执行器/**应使用用户/密码进行身份验证
  • 其他方法应为ouath2,以使用discord进行身份验证(获取AccessToken) 这是我的配置()
  • 通常,当我仅使用代码(1)运行代码时,没有(2)端点/执行器使用httpBasic进行适当保护

    当我只使用代码(2)时,我可以从discord获得AccessToken, 但当我想要组合它时,我有一个问题,端点/执行器需要不一致的身份验证,而不是http basic

    我尝试将它们拆分为两个配置,顺序分别为(1)和(2),但仍然不起作用

            http.authorizeRequests()
                    .antMatchers("/").permitAll()
                    .antMatchers("/h2-console/**").permitAll();
    
            http.csrf().disable();
            http.headers().frameOptions().disable();
    // (1)
            http.authorizeRequests()
                    .antMatchers("/actuator/**").authenticated()
                    .and().httpBasic().and().authorizeRequests().anyRequest().permitAll();
    //(2)
            http.authorizeRequests()
                    .and()
                    .oauth2Login()
                    .defaultSuccessUrl("/success")
                    .tokenEndpoint().accessTokenResponseClient(new RestOAuth2AccessTokenResponseClient(this.restOperations()))
                    .and()
                    .userInfoEndpoint()
                    .customUserType(User.class, "discord")
                    .userService(new CustomOAuth2UserServiceImpl(this.restOperations(), this.userRepository, configService, jda));