【问题标题】:Spring Security Ant Matchers RuntimeSpring Security Ant Matchers 运行时
【发布时间】:2023-03-14 13:30:02
【问题描述】:

我有这样的数据库:

ROLE1 -> /ui/ui1

ROLE1 -> /ui/ui2

ROLE2 -> /ui/ui2

如何在运行时更改 ROLE2 -> /ui/ui1

因为,我存储在数据库中。 :(

【问题讨论】:

    标签: spring-security


    【解决方案1】:

    您可以使用PermissionEvaluator 来检查您的自定义实现的授权,您可以在其中检查数据库并在运行时比较角色。

    更多使用方法:http://docs.spring.io/spring-security/site/docs/4.0.3.RELEASE/reference/htmlsingle/#el-permission-evaluator

    如果您不想在方法上使用注释,可以通过以下方法将自定义方法添加到 Web 安全表达式 spring security:intercept-url pattern access="#id == 1 。然后你应该可以在如下配置中使用它:

        http.authorizeRequests()
                .antMatchers("/url1").access("hasPermission(#user,...)");
    

    其他解决方案是在安全过滤器链中使用自定义过滤器来检查身份验证、url 和数据库。

    【讨论】:

      猜你喜欢
      • 2017-04-05
      • 2016-12-29
      • 2018-04-10
      • 2014-12-11
      • 2021-10-20
      • 2016-11-07
      • 1970-01-01
      • 2017-08-13
      • 2014-09-09
      相关资源
      最近更新 更多