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

未授权调用rest->响应的Keycloak

楚知
2023-03-14

我有一个关于钥匙斗篷的问题。我有安装Keycloak独立,wildfly与Keycloakhtml" target="_blank">适配器,并希望访问我的服务在wildfly中部署的Rest点,这是由Keycloak保护的。没有keycloaksecurity的Rest运行良好。但是当我想访问安全endpoint时,我总是得到一个未经授权的响应。
我的客户机(JavaFX)获得访问令牌很好,如果我输入错误的凭据,我会得到一个未经授权的异常。所以错误应该是在调用restpoint时,我错了吗?访问Rest点的任务的关键代码是
client client=resteasyclientbuilder.newclient();尝试{final Response Response=client.target(getTarget()).request(Mediatype.application_json).header(httpheaders.authorization,“bearer”+getUserSession().getAccessStoken().getToken().buildget().invoke();...(read Response throw exceptions等)

我已经为war文件和JavaFX客户机创建了一个KeyclaokClient。keycloak.json分别位于war文件的WEB-INF文件夹和JavaFX客户端的resources文件夹中。
我的问题是,如果我调用了restpoint并正确地设置了header...因为restpoint在不安全的情况下工作正常,我不确定我还应该在代码中发布什么。

共有1个答案

邵麒
2023-03-14

问题是KeyCloak的配置。我将https://localhost:port作为auth服务器,但它需要http://localhost:port

 类似资料:
  • 如果资源所有者许可访问请求,授权服务器颁发授权码,通过按附录B使用“application/x-www-form-urlencoded”格式向重定向URI的查询部分添加下列参数传递授权码至客户端: code 必需的。授权服务器生成的授权码。授权码必须在颁发后很快过期以减小泄露风险。推荐的最长的授权码生命周期是10分钟。客户端不能使用授权码超过一次。如果一个授权码被使用一次以上,授权服务器必须拒绝该

  • 授权响应可用于获取访问令牌,以使用授权代码访问系统中的所有者资源。 访问令牌由授权服务器在接受客户端应用程序发送的客户端ID,客户端密码和授权代码时提供。 授权服务器将颁发授权代码,允许使用以下参数访问请求 - Code - 它是一个必需参数,指定授权服务器生成的授权代码。 授权代码的生命周期最长为10分钟,授权代码不能多次使用。 如果客户端应用程序多次使用授权代码,则授权服务器拒绝该请求并取消先

  • 我已经实现了一个lambda授权器,并将其与API网关上的lambda代理集成进行了集成。 当我从API网关测试authorizer时,它工作得很好,但是当我试图从Postman调用第二个lambda上的endpoint时,请求似乎跳过了authorizer并直接命中第二个lambda。

  • 我想使用服务帐户实现谷歌表API请求。我创建了这个代码: 但是我得到了这个错误: com.google.api.client.auth.oauth2.TokenResponseException: 401 未经授权 在这个方法中 你知道我该如何解决这个问题吗?

  • 我的rest服务中没有Spring Security实现,当我试图调用rest中的资源时,我面临CORS 401未授权问题。 我对此感到愤怒: https://www.baeldung.com/spring-security-cors-preflight https://docs.spring.io/spring-security/site/docs/5.0.7.RELEASE/reference

  • 我在这里遵循 JWT 夸克指南。我想在不允许用户组访问 API 时发送自定义响应。 这是指南中显示的示例。 我如何知道请求是否未经授权,以便我可以发送自定义响应。