代码之家  ›  专栏  ›  技术社区  ›  David-SkyMesh

声明性web服务授权和WSDL类型

  •  1
  • David-SkyMesh  · 技术社区  · 17 年前

    目前,我们有一组web服务将接口公开给各种不同的客户机类型和角色。

    背景:

    • web服务应用程序代码是(并将继续)用弱类型动态语言编写的。

    • 认证 是分开处理的,这篇文章是关于 授权 .

    • web服务公开的所有操作都是无状态的。

    • web服务谈话 二者都 SOAP和REST(JSON)。

      我绝对没有兴趣开始讨论这两种方法的优点。

    问题:

    我想实施一个计划来 宣言地 同时定义

    1. 输入的复杂WSDL类型&公开方法的输出,以及
    2. 使用暴露方法所需的授权特征和/或角色。

    我希望声明与接口定义(比如作为方法属性)内联,或者外部定义(比如通过YAML文件),但是 在数据库中动态管理。

    (任何)弱类型动态语言是否已经存在这样的实现? 我们是否可以构建apon的完全外部实现?

    2 回复  |  直到 17 年前
        1
  •  0
  •   nont    17 年前

    如果您使用的是Java,那么Spring Security(以前称为ACEGI)将允许您对方法进行注释,以需要任何用户角色作为执行条件。

    这是一个 example:

    package com.habuma.expectations.springsecurity.intercept;
    import org.springframework.security.annotation.Secured;
    
    public class SecuredObject {
       @Secured( {"ROLE_SECRET_AGENT"} )
       public String getSecuredData() {
          return "Top-Secret Data";
       }
    }
    

    缺少角色的用户的请求将引发异常。您可以自由选择您想要的任何身份验证方案,无论您使用的是SOAP还是REST。它没有比注释更具声明性。我已经在许多Web服务中成功地使用了这种方法。

        2
  •  0
  •   David-SkyMesh    17 年前

    嘎,在这个话题上一无所获。。。如果你问一些我已经能预测到的细节,会让事情变得混乱:-(

    推荐文章