我有一个Sping Boot 应用程序,它通过@RollsAllowed('NAME_OF_THE_ROLE')获得了方法级安全性。我遇到的情况是,当应用程序从开发环境转到更高的环境,再从那里转到生产环境时,安全组的名称会发生变化。关于如何根据我将应用程序部署到的环境,在@RollsAllowed()中注入安全名称,有什么想法吗?
@RollsAllowed('NAME_OF_THE_ROLE')
@RollsAllowed()
k2arahey1#
解决方案1:多重公差
如果角色名称没有及时更改,并且环境之间没有名称冲突,则可以根据环境将@Secured注解用于不同的组。例如@Secured({ "DEV_VIEWER", "ALPHA_VIEWER", "PRD_VIEWER"})
@Secured
@Secured({ "DEV_VIEWER", "ALPHA_VIEWER", "PRD_VIEWER"})
解决方案2:手工制作
否则,如果您需要某些东西,可以使用自定义PermissionEvaluator切换到@PreAuthorize注解。Baeldung对https://www.baeldung.com/spring-security-create-new-custom-security-expression这个主题做了一个相当完整的指导
@PreAuthorize
1条答案
按热度按时间k2arahey1#
解决方案1:多重公差
如果角色名称没有及时更改,并且环境之间没有名称冲突,则可以根据环境将
@Secured
注解用于不同的组。例如
@Secured({ "DEV_VIEWER", "ALPHA_VIEWER", "PRD_VIEWER"})
解决方案2:手工制作
否则,如果您需要某些东西,可以使用自定义PermissionEvaluator切换到
@PreAuthorize
注解。Baeldung对https://www.baeldung.com/spring-security-create-new-custom-security-expression这个主题做了一个相当完整的指导