Keycloak KeyClope中的@RoleAllowed()正在检查哪个角色

Keycloak KeyClope中的@RoleAllowed()正在检查哪个角色,keycloak,Keycloak,我使用的是keydove,我已经创建了一个dropwizard服务,我想开始在其中强制执行角色 我尝试过使用@RoleSalowDuser注释,但它总是返回403 我也试过@PermitAll,效果很好 我知道我已正确连接到服务器,因为用户在电子邮件、姓名等中有正确的信息,但是角色来自哪里 有没有办法查看用户拥有的角色?在您的应用程序领域中,在KeyClope管理控制台上有一个名为“角色”的部分。在这里,您必须添加将由java安全性检查的角色。 如果希望注册后的用户自动接收角色,则需要将此角色添

我使用的是keydove,我已经创建了一个dropwizard服务,我想开始在其中强制执行角色

我尝试过使用@RoleSalowDuser注释,但它总是返回403

我也试过@PermitAll,效果很好

我知道我已正确连接到服务器,因为用户在电子邮件、姓名等中有正确的信息,但是角色来自哪里


有没有办法查看用户拥有的角色?

在您的应用程序领域中,在KeyClope管理控制台上有一个名为“角色”的部分。在这里,您必须添加将由java安全性检查的角色。
如果希望注册后的用户自动接收角色,则需要将此角色添加到默认角色->默认角色中。您还可以在“用户-选择一个用户->角色映射->分配的角色”中手动向现有用户添加角色,回答我自己的问题

我让@RoleSalowDuser始终返回403的问题是因为KeyClope UI中有一个名为Scope Param Required的复选框。工具提示如下:

仅当在授权/令牌请求期间使用具有角色名称的作用域参数时,才会授予此角色

事实证明,如果您试图使用该角色,并且复选框处于启用状态,则不会将其发送到客户端,因此客户端似乎认为用户没有该角色。我点击了该复选框,这就是为什么注释显示用户未通过身份验证的原因

因此,如果选中该复选框,则需要显式请求角色,以下是如何使用用户:

"scope" : {
  "realm" : [ "user" ]
}
以下是来自Keyclaok的更多信息: