gpt4 book ai didi

spring - 使用 Spring Security ACL 注释对方法进行单元测试的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-01 06:31:59 25 4
gpt4 key购买 nike

假设我有如下方法:

@PreAuthorize("hasPermission(#obj, 'READ')")
public void requiresReadPermission(Object obj) {}

是否有一种简单的方法来模拟/授予/拒绝身份验证的“READ”权限?

最佳答案

由于它是方法的单元测试,而不是给定拦截器的单元测试,因此您无需担心身份验证和 ACL 基础结构。如果你想测试 AccessDeniedException当用户没有被授予访问对象的权限时抛出,单元测试拦截器本身。在您的情况下,只需测试您的方法是否执行/返回预期执行/返回的操作。

如果身份验证未授予对给定对象的访问权限,则 Spring Security ACL 方法拦截器抛出 AccessDeniedException如上所述,它在 AccessDeniedHandler 中处理或在直接或间接调用安全方法的方法的 catch block 中。如果这是您的情况,则组件有责任根据您的安全方法正确处理异常。

此类组件的单元测试可以使用注入(inject)安全方法的组件模拟来创建组件,并模拟抛出 AccessDeniedException .然后检查是否正确处理了异常。

关于spring - 使用 Spring Security ACL 注释对方法进行单元测试的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com