我有这样的数据库:
ROLE1 - > / ui / ui1
ROLE1 - > / UI / UI2
ROLE2 - > / UI / UI2
如何更改 ROLE2 - > / ui / ui1 在运行时?
因为,我存储在数据库中。 :(
答案 0 :(得分:0)
您可以使用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,...)");
其他解决方案是在安全过滤器链中使用自定义过滤器来检查身份验证,网址和数据库。