【问题标题】:Secure REST Controller through the Roles/Authorities通过角色/权限保护 REST 控制器
【发布时间】:2016-12-11 17:50:51
【问题描述】:

我并不真正了解使用 Spring Boot 的 Spring Security 中 roles/authorities 的逻辑(尽管有文档)。

我会根据登录的用户授权映射的控制器请求。

有人可以帮我吗?

提前谢谢你!

【问题讨论】:

    标签: spring-boot spring-security


    【解决方案1】:

    一般的想法很简单:你在你的应用程序中有角色,你有一个用户。用户拥有角色集合(可能为空)。此外,您的应用程序的所有端点(控制器方法、服务方法)只能被允许访问某些此角色集(请参阅@RolesAllowed 注释)。如果您尝试访问此方法(例如通过 http 请求)并且您(作为用户)没有此角色,则您将被禁止获得有效响应,而您将收到 403 错误

    【讨论】:

    • 谢谢索比克。但我不明白如何创建登录和“授权”角色。我应该在实体用户中创建一个“授权”对象吗?
    • 安德烈亚斯,请看这堂课:docs.spring.io/spring-security/site/docs/3.2.2.RELEASE/apidocs/…。您的身份验证对象是此接口的实现。这个接口包含方法getAuthorities()。例如,如果您(我不知道您的实现细节,所以我只是猜测)将您的用户存储在数据库中,您应该使用方法 UserDetails loadByUserName(String userName) 创建您的 UserDetailsS​​ervice 实现。在这种方法中,您可以根据您的逻辑为您的 UserDetails 定义 Authorities
    • 给我你 spring-security.xml 或 SecurityConfig 类,我有机会帮你详细介绍
    • 我不使用xml配置,而是注解。我的问题是如何为用户分配角色。
    • 您可以将它们存储在数据库中,请查看我的答案之一:stackoverflow.com/a/40933970/2322770
    【解决方案2】:

    我使用以下内容作为在基于休息的应用程序中添加弹簧安全性的参考。我希望这对其他人也有帮助.. http://www.baeldung.com/securing-a-restful-web-service-with-spring-security

    有一个示例代码链接可以获取灵感。

    我们不重定向和禁用这些重定向以进行登录并提供替代 HTTP 响应的想法是静止的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 2015-04-10
      • 2015-06-24
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2021-08-08
      相关资源
      最近更新 更多