gpt4 book ai didi

java - 使用 keycloak 进行安全保护后,无法使用有效的 keycloak token 访问 REST 服务

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:06 25 4
gpt4 key购买 nike

使用 keycloak Java API 获取有效 token ,然后使用此 token 尝试访问已使用 keycloak 保护的其余服务,但收到 404 错误,未找到。

token 似乎不起作用?

这是我从 keycloak 获取 token 的 java 代码。这似乎有效:

AuthzClient authzClient = AuthzClient.create();
AccessTokenResponse response = authzClient.obtainAccessToken(user, password);

我在响应中得到了一个有效的 token 。然后,我尝试使用此 token 访问使用 keycloak 保护的 REST 服务:

    String urlString = "http://localhost:3333/appname-1.0.0-SNAPSHOT/project/0.1/device/return/all";

URL url = new URL(urlString);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
String authString = "Bearer " + tokenStr;
con.setRequestProperty("Authorization", authString);
basicStatus = con.getResponseCode();

basicStatus 返回 404

我通过添加 web.xml 文件和 keycloak.json 文件,使用 REST 服务保护 war 文件。如果我从 war 中删除 web.xml 和 keycloak.json 文件,那么上面的代码将返回 200。但是该服务并不安全。

web.xml:

<module-name>application</module-name>

<security-constraint>
<web-resource-collection>
<web-resource-name>Device</web-resource-name>
<url-pattern>/device/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>device</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>this is ignored currently</realm-name>
</login-config>

<security-role>
<role-name>device</role-name>
</security-role>

用户在 keycloak 中具有设备角色。

有什么想法吗?

最佳答案

首先,请先从您的“http://localhost:3333/ .......”资源服务器根位置 URL 中删除“http://”,然后重试。如果这不能解决您的问题,我建议您使用 postman 之类的工具,您可以更快地进行测试/原型(prototype)设计。

1 - 使用此端点获取 token (以 x-www-form-urlencoded 形式发送):HOST:PORT/auth/realms/YOUR_REALM/protocol/openid-connect/token

2 个参数是:grant_type(值:密码)、client_id、usernmae 和密码(如果您的客户端的访问类型是“ secret ”或“仅承载”,您还需要提供 client_secret)

3 完成此工作后,只需检查您的 Java 客户端中是否使用相同的值。

希望有帮助。

编辑:好吧,这已经 11 个月了 XD....没关系

关于java - 使用 keycloak 进行安全保护后,无法使用有效的 keycloak token 访问 REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52173935/

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