【发布时间】:2017-10-28 06:48:00
【问题描述】:
因此,当用户通过 oAuth2 环境中的授权服务器在其客户端设备上获得授权的 JWT 后,我一开始想到我可以实现哪个自定义 AuthenticationManager 甚至自定义 AuthenticationProvider 感到困惑。
然后它击中了我,呃,用户不需要通过 AuthenticationManager,因为他们已经通过授权服务器使用系统中实现的任何 oAuth2 流程进行了“身份验证”。他们有 JWT 访问令牌来证明这一点,事实上,他们甚至无法在没有授权访问令牌的情况下访问任何资源服务器端点。
但是,我仍然想要一种访问包含所有用户信息的身份验证对象的方法。
在不使用 AuthenticationManager 的情况下,您将如何创建和获取对此 Authentication 对象的引用?我在这里很困惑。
我想要这个 Authentication 对象的主要原因是因为我计划在 Spring Security 的 ACL 旁边使用带有自定义表达式的方法级安全性。换句话说,我想要 oAuth2 并且我还想要使用 ACL 来非常精细地控制哪些用户对哪些域对象具有授权/权限。
那么,在设置 oAuth2 之后,我如何才能访问此 Authentication 对象(甚至可以使用用户当前的访问令牌作为字段/属性来创建它)?
谢谢。
【问题讨论】:
标签: java spring spring-mvc spring-security oauth-2.0