通过示例实现 Spring Security AccessDecisionManager
Implementing Spring Security AccessDecisionManager by example
请注意:有人似乎在不加解释的情况下连续 DV 我的问题。这个问题是关于主题的,不是重复的,显示研究并提供 SSCCE。如果您想对其进行 DV 或 CV,那很好,但请提供评论说明原因,以便我有机会解决您的问题...
Spring 引导 2。3.x 和 Spring 此处安全。
我有一些相当复杂的授权逻辑,所以我 相信 我需要编写自己的 AccessDecisionManager
impl 并将其连接到我的 WebSecurityConfigurerAdapter
impl (如果有任何错误或误解,请纠正我!)。
那么,要实现你自己的 AccessDecisionManager
你需要实现 3 个方法,其中之一是:
public class MyCustomAccessDecisionManager implements AccessDecisionManager {
@Override
public void decide(
Authentication authentication,
Object object,
Collection<ConfigAttribute> configAttributes) throws AccessDeniedException, InsufficientAuthenticationException {
// TODO
}
}
我已经搜索了 Google 高低之神,但对于我来说,我找不到一个有意义的、真实世界的例子来说明 Object object
和 Collection<ConfigAttribute> configAttributes
论点是什么,它们的用途,打算如何使用它们,以及它们在运行时的一些真实世界(具体)示例。
Authentication
参数很明显:它是我的身份验证令牌,将包含主体,可能是他们的凭据,以及与主体关联的 GrantedAuthorities
(权限)列表。
但其他两个参数(object
和 configAttributes
)对我来说绝对是个谜。
有谁知道这些论点是什么,它们在现实世界中的一些用例是什么,以及它们的用途是什么?
正如 AccessDecisionManager
的 JavaDoc 所说:
object – the secured object being called
通常,它是 MethodInvocation
接口的一个实例,它表示应该执行调用安全决策的方法。
configAttributes - the configuration attributes associated with the secured object being invoked
它是与安全对象(方法)相关的元数据属性的集合。例如可以包含与该方法相关的注解信息,如@PermitAll
、@PreAuthorize
、@PostFilter
等
请注意:有人似乎在不加解释的情况下连续 DV 我的问题。这个问题是关于主题的,不是重复的,显示研究并提供 SSCCE。如果您想对其进行 DV 或 CV,那很好,但请提供评论说明原因,以便我有机会解决您的问题...
Spring 引导 2。3.x 和 Spring 此处安全。
我有一些相当复杂的授权逻辑,所以我 相信 我需要编写自己的 AccessDecisionManager
impl 并将其连接到我的 WebSecurityConfigurerAdapter
impl (如果有任何错误或误解,请纠正我!)。
那么,要实现你自己的 AccessDecisionManager
你需要实现 3 个方法,其中之一是:
public class MyCustomAccessDecisionManager implements AccessDecisionManager {
@Override
public void decide(
Authentication authentication,
Object object,
Collection<ConfigAttribute> configAttributes) throws AccessDeniedException, InsufficientAuthenticationException {
// TODO
}
}
我已经搜索了 Google 高低之神,但对于我来说,我找不到一个有意义的、真实世界的例子来说明 Object object
和 Collection<ConfigAttribute> configAttributes
论点是什么,它们的用途,打算如何使用它们,以及它们在运行时的一些真实世界(具体)示例。
Authentication
参数很明显:它是我的身份验证令牌,将包含主体,可能是他们的凭据,以及与主体关联的 GrantedAuthorities
(权限)列表。
但其他两个参数(object
和 configAttributes
)对我来说绝对是个谜。
有谁知道这些论点是什么,它们在现实世界中的一些用例是什么,以及它们的用途是什么?
正如 AccessDecisionManager
的 JavaDoc 所说:
object – the secured object being called
通常,它是 MethodInvocation
接口的一个实例,它表示应该执行调用安全决策的方法。
configAttributes - the configuration attributes associated with the secured object being invoked
它是与安全对象(方法)相关的元数据属性的集合。例如可以包含与该方法相关的注解信息,如@PermitAll
、@PreAuthorize
、@PostFilter
等