【发布时间】:2023-03-14 13:30:02
【问题描述】:
我有这样的数据库:
ROLE1 -> /ui/ui1
ROLE1 -> /ui/ui2
ROLE2 -> /ui/ui2
如何在运行时更改 ROLE2 -> /ui/ui1?
因为,我存储在数据库中。 :(
【问题讨论】:
标签: spring-security
我有这样的数据库:
ROLE1 -> /ui/ui1
ROLE1 -> /ui/ui2
ROLE2 -> /ui/ui2
如何在运行时更改 ROLE2 -> /ui/ui1?
因为,我存储在数据库中。 :(
【问题讨论】:
标签: spring-security
您可以使用PermissionEvaluator 来检查您的自定义实现的授权,您可以在其中检查数据库并在运行时比较角色。
如果您不想在方法上使用注释,可以通过以下方法将自定义方法添加到 Web 安全表达式 spring security:intercept-url pattern access="#id == 1 。然后你应该可以在如下配置中使用它:
http.authorizeRequests()
.antMatchers("/url1").access("hasPermission(#user,...)");
其他解决方案是在安全过滤器链中使用自定义过滤器来检查身份验证、url 和数据库。
【讨论】: