【问题标题】:Access restriction depending on client type – Spring mvc, spring security访问限制取决于客户端类型——Spring mvc、spring security
【发布时间】:2016-06-18 02:49:18
【问题描述】:

我们有一个 spring mvc rest api 和一个登录控制器。

这是通过多个客户端使用的 - 移动(cordova/angular)和 webapp(angular)。

我们为某些类型的用户分配了角色(弹簧安全),即 RoleA 可以管理 RoleB 中的用户。

目前在我们的移动应用中,我们只支持RoleB中的人。

是否有最佳实践方法来限制 RoleA 中的人登录移动应用程序,同时仍保持其当前在网络应用程序上的访问级别?

我考虑过的事情:

  • 以某种方式检测登录请求的来源,并可能使用新的 security.xml 进行拦截和限制。
  • 有单独的登录方法。
  • 在客户端做一些事情。

TIA。

【问题讨论】:

    标签: angularjs cordova spring-mvc spring-security


    【解决方案1】:

    当我想为 JavaScript 单页应用程序和移动应用程序使用关于身份验证机制(基于 csrf 的 cookie 与没有会话的纯基本身份验证)的单独安全设置时,我遇到了类似的问题。

    我发现了一些通过引导由某些 url 模式选择的不同安全配置来拆分安全配置的技术。我可以通过给@RequestMapping 起别名来重用我的控制器。也许这个设置可以帮助你:

    Multiple Spring Security configurations for REST via BasicAuth vs. Session with CSRF

    对我来说,设置最终不起作用,因为它不允许有真正独立的孤岛(在一个链中获得的会话也可以在另一个链上使用)。但是,如果您只想根据 url 限制访问,这可能对您有用。有关更多详细信息,请参阅 spring 安全文档:

    http://docs.spring.io/spring-security/site/docs/4.0.4.RELEASE/reference/html/jc.html#multiple-httpsecurity

    请注意antMatcher 直接在http 对象上用于确定链 - 这不是.authorizeRequests() 上定义的角色的通常设置。

    【讨论】:

    • 非常感谢 ajaegle - 我会看看并告诉你。
    猜你喜欢
    • 2021-05-18
    • 2016-12-20
    • 2018-11-28
    • 2012-10-22
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 2013-06-20
    相关资源
    最近更新 更多