当前位置: 首页 > 知识库问答 >
问题:

如何告诉spring security 5在调用默认重定向endpoint时使用不同的上下文

狄德泽
2023-03-14

我已经在UI应用程序中通过Oauth2代码授予类型启用了spring Security5。

spring:
  application:
    name: My Client Application
  main:
    allow-bean-definition-overriding: true
  security:
    oauth2:
      client:
        provider:
          myAuthProvider:
            token-uri: https://someserver.com/as/token.oauth2
            authorization-uri: https://someserver.com/as/authorization.oauth2
        registration:
          myAuthProvider:
            client-name: myAuthProvider
            client-id: ABCID
            client-secret: XYZSECRET
            client-authentication-method: basic
            authorization-grant-type: authorization_code
            redirect-uri: https://localhost:8080/welcome/login/oauth2/code/myAuthProvider
@Configuration
public class WebClientConfig {

    @Bean
    WebClient authProviderWebClient(ClientRegistrationRepository clientRegistrations,
                                    OAuth2AuthorizedClientRepository authorizedClients) {
        var oauth = new ServletOAuth2AuthorizedClientExchangeFilterFunction(clientRegistrations,authorizedClients);
        oauth.setDefaultOAuth2AuthorizedClient(true);
        oauth.setDefaultClientRegistrationId("myAuthProvider");

        return WebClient.builder()
                .apply(oauth.oauth2Configuration())
                .build();
    }
}
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
            .authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
            .oauth2Login();
    }
}
private static final String WELCOME_PAGE = "welcome";

@GetMapping("/")
public String homePage() {
    ....
    return WELCOME_PAGE;
}

}

共有1个答案

宿建本
2023-03-14

application.yml

myAuthProvider:
    client-name: myAuthProvider
    client-id: ABCID
    client-secret: XYZSECRET
    client-authentication-method: basic
    authorization-grant-type: authorization_code
    redirect-uri: "{baseUrl}/welcome/login/oauth2/code/{registrationId}"

WebSecurityConfig.Class

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

 @Override
 protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable()
        .authorizeRequests()
        .anyRequest()
        .authenticated()
        .and()
        .oauth2Login()
           .redirectionEndpoint().baseUri("/welcome/login/oauth2/callback/*");
 }
}
 类似资料:
  • 问题内容: 因此,我正在像这样在类级别上将模拟对象创建为静态变量…在一个测试中,我想返回某个值,而在另一个测试中,我希望它返回一个不同的值。我遇到的问题是,似乎我需要重建模拟才能使其正常工作。我想避免重建模拟,只在每个测试中使用相同的对象。 在第二个测试中,当调用testObj.bar()时,我仍然收到0作为值。解决此问题的最佳方法是什么?请注意,我知道我可以在每个测试中使用不同的模拟,但是,我必

  • 问题内容: 我有一个验证并保存表单的视图。保存表单后,我想重定向回list_object视图,并显示一条成功消息“客户xyz的表单已成功更新…” HttpResponseRedirect似乎无法正常工作,因为它只为url提供一个参数,无法与之一起传递字典。 我已经尝试修改object_list的包装,以将dict作为具有必要上下文的参数。我从保存表单的视图内部返回对此包装的调用。但是,呈现页面时,

  • 这件事我已经做了好几天了。我使用1和1托管,他们的PHP设置有点奇怪。 如果我只使用,那么我使用的是PHP4.4.6,这远远不够。但是,我可以运行,再深入一点,但它仍然失败,因为在某个地方,PHP再次被调用,但它失败了,因为它使用的是4.4.6。 有没有办法告诉Composer使用命令?有人成功地在1and1主机上配置了作曲家吗? 我试图让Laravel启动并运行(使用Composer)。我已经能

  • 我有多个Java Spring Boot服务(大约20个),使用Amazon SDK for S3、SQS、DynamoDB等。 目前,要使用Amazon Web服务,我只需要指定我的AWS密钥&秘密。 然而,我想要设置离线开发环境,所以我开始对接我的服务,并建立一个单一的多Docker容器,我的所有服务都对接了,应该使用localstack而不是远程AWS服务,以允许完成离线开发。 Amazon

  • 问题内容: 我想用Cython包装一个包含C ++和OpenMP代码的测试项目,并通过文件与distutils一起构建它。我文件的内容如下所示: 该标志与gcc一起用于针对OpenMP进行编译和链接。但是,如果我只是调用 由于编译器是clang,因此无法识别此标志: 我尝试指定gcc失败: 如何告诉distutils使用gcc? 问题答案: 尝试使用os.environ从setup.py内部设置“

  • 我想用Cython包装一个包含C和OpenMP代码的测试项目,并通过一个文件用distutils构建它。我的文件内容是这样的: 标志与gcc一起用于编译和链接OpenMP。然而,如果我只是调用 无法识别此标志,因为编译器为clang: 我尝试指定gcc失败: 如何告诉distutils使用gcc?