我正在将Keycloak 7.0.1与Spring Boot 1.5.16.RELEASE一起使用,方法是通过指定资源,基于角色的策略和权限来保护端点-这按预期工作。
棘手的事情是仅保护POST并允许对某些特定URI的GET请求。我在application.yml中做了什么:
policy-enforcer-config:
enforcement-mode: ENFORCING
paths[0]:
name: all
path: /*
paths[1]:
name: test post
path: /my/url
methods[0]:
method: GET
scopes[0]: view
methods[1]:
method: POST
scopes[0]: edit
在密钥区中,我创建了edit
和view
范围,/my/url
资源,具有角色和否定决定的政策(如果用户具有该角色-拒绝访问),权限包含资源,范围和政策。评估工作正常,但我的spring应用程序始终会收到403错误。
您能为我提供一个资源范围用法的例子,或建议采取什么其他措施使它起作用吗?
答案 0 :(得分:2)
可能有多个问题,但首先,请检查您的SecurityConfig。
这就是我们所拥有的:
cordova plugin rm cordova-plugin-inappbrowser
cordova plugin add https://github.com/apache/cordova-plugin-inappbrowser.git
如果您想通过角色限制REST API端点,请为控制器方法添加@PreAuthorize(“ hasRole('your.role.from.keycloak')”)