gpt4 book ai didi

java - 如何从spring mvc安全配置生成权限矩阵?

转载 作者:行者123 更新时间:2023-11-30 11:44:10 27 4
gpt4 key购买 nike

在我们的项目中,我们混合了基于 spring mvc 安全配置的 xml 和注释。我们有很多角色,很多控制者和经常变化的关于谁应该能够做什么的要求。我认为拥有将生成权限矩阵的 util 类会很好 like this .

到目前为止,我所做的都是简单的写法 classpath scanner它查找所有标有 @Controller 的类并提取 @PreAuthorize 的值. Controller 的命名约定很简单:{Action}{Type}Controller(例如 NewOrderController),因此很容易生成人类(我指的是人类,我指的是非程序员)可读的 csv 文件。

问题是针对注解的类路径扫描没有涵盖我们在 xml 配置中得到的内容。

我想知道是否有任何其他方法可以查询 spring mvc 本身用于访问解析的元数据。

编辑:

示例 xml 配置(已大大简化):

<security:http pattern="/static/**" security="none" />

<security:http auto-config="false"
use-expressions="true"
entry-point-ref="entryPoint"
security-context-repository-ref="securityContextRepository">
<security:intercept-url pattern="/product/**" access="hasAnyRole('PRODUCT_USER')" />
<security:intercept-url pattern="/admin/**" access="hasAnyRole('ADMIN_USER')" />
<!-- No security configuration for /order/** -->
</security:http>

注解驱动配置示例:

@Controller
@RequestMapping("/order/new/{id}")
public class NewOrderController {

@Autowired
public NewOrderController() {
}

@RequestMapping(method = RequestMethod.GET)
@PreAuthorize("hasRole('ORDER_USER')")
public ModelAndView display() {
return new ModelAndView(/*...*/);
}

@RequestMapping(method = RequestMethod.POST)
@PreAuthorize("hasRole('ORDER_USER')")
public RedirectView process() {
return new RedirectView(/*...*/);
}

}

最佳答案

我想 this answer将帮助您构建解决方案以在 URL 拦截器上解析和加载元数据,以收集配置的角色。

关于java - 如何从spring mvc安全配置生成权限矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10913322/

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