keycloak 中的@RolesAllowed() 正在检查什么角色
What role is being checked by @RolesAllowed() in keycloak
我正在使用 keycloak,我已经创建了一个 dropwizard 服务,我想开始在其中执行角色。
我试过使用@RolesAllowd("user") 注释,但它总是 returns 403.
我也试过@PermitAll,效果很好。
我知道我已正确连接到服务器,因为用户在其中具有正确的信息(电子邮件、姓名等),但是角色从何而来?
有没有办法查看用户拥有的角色?
在 keycloak 管理控制台上的应用程序领域中,您有一个名为角色的部分。您必须在此处添加 java 安全性将检查的角色。
如果您希望用户在注册后自动获得一个角色,您需要将此角色添加到 default roles(roles -> default roles)。也可以在users-(select一个用户)->role mapping->assigned roles
手动添加角色给已经存在的用户
(回答我自己的问题)
我遇到的问题 @RolesAllowd("user") 总是 returns 403,是因为 Keycloak 中的复选框 UI 称为“需要范围参数”。工具提示显示:
This role will be granted just if scope parameter with role name is used during authorization/token request.
事实证明,如果您尝试使用该角色,并且复选框处于选中状态,则不会将其发送到客户端,因此在客户端看来用户没有该角色。为我选中了该复选框,这就是注释显示用户未通过身份验证的原因。
因此,如果该复选框被选中,您需要明确询问该角色,以下是您对用户的操作方式:
"scope" : {
"realm" : [ "user" ]
}
这里是来自 Keyclaok 的更多信息:https://issues.jboss.org/browse/KEYCLOAK-231
我正在使用 keycloak,我已经创建了一个 dropwizard 服务,我想开始在其中执行角色。
我试过使用@RolesAllowd("user") 注释,但它总是 returns 403.
我也试过@PermitAll,效果很好。
我知道我已正确连接到服务器,因为用户在其中具有正确的信息(电子邮件、姓名等),但是角色从何而来?
有没有办法查看用户拥有的角色?
在 keycloak 管理控制台上的应用程序领域中,您有一个名为角色的部分。您必须在此处添加 java 安全性将检查的角色。 如果您希望用户在注册后自动获得一个角色,您需要将此角色添加到 default roles(roles -> default roles)。也可以在users-(select一个用户)->role mapping->assigned roles
手动添加角色给已经存在的用户(回答我自己的问题)
我遇到的问题 @RolesAllowd("user") 总是 returns 403,是因为 Keycloak 中的复选框 UI 称为“需要范围参数”。工具提示显示:
This role will be granted just if scope parameter with role name is used during authorization/token request.
事实证明,如果您尝试使用该角色,并且复选框处于选中状态,则不会将其发送到客户端,因此在客户端看来用户没有该角色。为我选中了该复选框,这就是注释显示用户未通过身份验证的原因。
因此,如果该复选框被选中,您需要明确询问该角色,以下是您对用户的操作方式:
"scope" : {
"realm" : [ "user" ]
}
这里是来自 Keyclaok 的更多信息:https://issues.jboss.org/browse/KEYCLOAK-231