gpt4 book ai didi

keycloak - 如何使用 Spring Cloud Gateway 和 Keycloak 验证 curl(或 Postman 或 Ajax)调用

转载 作者:行者123 更新时间:2023-12-03 20:53:05 24 4
gpt4 key购买 nike

我正在使用带有 Keycloak 的 Spring Cloud Gateway,并且身份验证可以通过浏览器进行。
但是,没有Authorization带有 token 的 header ,但 SESSION cookies 代替。
我根本不想使用 cookie,而是使用 token 。

目前,如果我发布到 http://localhost:8080/auth/realms/myrealm/protocol/openid-connect/token获取 token 并尝试输入 access_tokenAuthorization带有 Bearer 的标题它不起作用,但返回登录页面。

另外,如果我添加 keycloak.js到浏览器页面,登录成功后尝试添加xhttp.setRequestHeader('Authorization', 'Bearer ' + keycloak.token);对 Ajax 调用,它再次返回登录页面。

那么如何从任何提供有效 token 的客户端使用带有 Keycloak 的 Spring Cloud Gateway 呢?

这是我的网关配置,以及它背后的网络应用程序 /web/ route 没有应用任何安全性。 Keycloak 配置了基本的公共(public)客户端。

    @Bean
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http,
ReactiveClientRegistrationRepository clientRegistrationRepository) {
http.oauth2Login();
http.logout(logout -> logout
.logoutSuccessHandler(new OidcClientInitiatedServerLogoutSuccessHandler(clientRegistrationRepository)));
http.authorizeExchange().pathMatchers("/web/private").authenticated()
.pathMatchers("/web/**").permitAll()
.anyExchange().authenticated();
http.headers().frameOptions().mode(Mode.SAMEORIGIN);
http.csrf().disable();
return http.build();
}

最佳答案

如果您想使用访问 token 向 Spring Gateway 发出请求,您需要将其设为资源服务器:https://stackoverflow.com/a/66923312/11122338

关于keycloak - 如何使用 Spring Cloud Gateway 和 Keycloak 验证 curl(或 Postman 或 Ajax)调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62041638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com