【发布时间】:2019-06-28 20:13:32
【问题描述】:
我正在使用 Java spring 构建一个 Rest API,以保护我已实现基于 JWT 的身份验证的端点。
我设置了一个过滤器,在其中验证令牌并恢复用户和角色。到目前为止,这很好用,但是我不知道应该在哪里根据用户和角色实施授权。
例如: 如果 x 是管理员,他/她可以访问任何端点 如果 y 是 id 为 1 的用户,她/他只能访问她/他的资源;例如/user/1/books。
我倾向于在验证 JWT 的同一过滤器中执行此授权,但是,我必须解析 url 以查找它是否进入正确的端点。另一种可能性是直接在控制器中实现,但我不喜欢这种方法,因为我觉得这会使控制器业务逻辑不堪重负。
感谢和问候
【问题讨论】:
-
是的,我做到了。正如我提到的,我正在考虑在过滤器中实现。不利的一面是,就我而言,我将不得不解析 url。
-
Spring 为这个特定目的构建了一个完整的基础架构。使用
@PreAuthorize。
标签: java authentication spring-security jwt