【问题标题】:Spring Boot Microservice: dynamic role, permission based securitySpring Boot 微服务:动态角色,基于权限的安全性
【发布时间】:2017-02-14 17:59:06
【问题描述】:

我们已经使用 Spring Boot 微服务创建了应用程序, 应用包含jsp页面和rest uri。

对于这种类型的架构,期望得到保护页面和 uri 的建议。 我想要基于角色和权限的访问,其中权限包含列出的所有页面和 uri,并且 role_permission_mapping 具有 uri/pages 与角色的映射。

管理员有权使用某些 UI 动态添加角色、权限和映射。

下图显示了示例表结构。

如果我们有为此类需求提供开箱即用支持的内置机制,请建议我。

【问题讨论】:

    标签: java spring spring-security spring-boot microservices


    【解决方案1】:

    您可以为此使用 spring security 中的 intercept-url 概念。

    1. 基于 Java 的配置 - h ttp://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#authorize-requests
    2. 基于 XML 的配置 - h ttp://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#ns-minimal h ttp://docs .spring.io/spring-security/site/docs/current/reference/htmlsingle/#nsa-intercept-url

    在您的情况下,要拦截的 URL 是“许可”。在您的特定情况下,您可能希望在 Spring Security 中动态配置拦截 URL,从数据库中读取它们(权限)。您可以查看以下答案,通过实现自定义 FilterInvocationSecurityMetadataSource 来实现相同的目的。 -

    1. how can I manage spring security url pattern in java class instead of xml config
    2. How to dynamically decide <intercept-url> access attribute value in Spring Security?

    P.S:对于 Spring 文档的链接断开,我们深表歉意。 StackOverflow 不允许我发布超过 2 个链接,因为我是这里的新贡献者。

    【讨论】:

    • 如何根据数据库中的角色验证 hasRole("SOME STATIC ROLE")。
    • 我更喜欢 javax.servlet.Filter 来拦截一切。
    猜你喜欢
    • 1970-01-01
    • 2017-04-04
    • 2020-05-27
    • 2012-09-06
    • 2020-11-29
    • 2015-10-28
    • 2020-05-04
    • 2021-08-02
    相关资源
    最近更新 更多