通过 wso2 esb 代理的工作日服务
Posted
技术标签:
【中文标题】通过 wso2 esb 代理的工作日服务【英文标题】:Workday service proxied through wso2 esb 【发布时间】:2016-09-14 19:40:00 【问题描述】:我想知道是否有其他人找到了一种相对简单的方法来代理工作日服务以将操作限制为一两个操作。我们要代理的 Workday 服务有近 200 个操作,WSDL 超过 52,000 行。我们希望将 ESB 用作我们企业 Web 服务的中心,但还没有找到一种简单的方法来公开一两个操作,因为此时我们不希望向所有人公开这个世界。如果需要对几十个服务进行手动尝试将 52,000 行的 wsdl 缩减到 100 行以下,并且 wsdl 每年至少更新两次,这有点令人生畏。
对于可以帮助创建自定义 wsdl 以从我们的代理服务发布的工具,是否有人有类似的经验或建议?我们没有任何 java 代码来定义服务和生成 wsdl。
我是否错误地认为我可以通过创建自定义 wsdl 来限制代理服务的操作以仅公开给定代理所需的操作?
任何建议将不胜感激。
【问题讨论】:
有趣的问题!我首先建议您可以通过在 Workday 中分配给他们帐户的安全组和域来限制人们对 Workday Web 服务的访问。然后,是的,您可以包装有限数量的服务(来自原始 WSDL)并通过您自己在 WSO2 中的自定义服务公开这些服务。但是,这种方法意味着 WSO2 ESB 将 Workday 作为单个服务帐户进行身份验证。但此时,您无法了解(在工作日)谁调用了 Web 服务。 【参考方案1】:您认为可以像这样限制服务的操作是正确的。你有两种方法来创建你的“自定义”wsdl:
以 altova xmlsply 之类的工具为例,对不想暴露的操作进行注释
以ant开发脚本为例,使用xsl自动更新你的wsdl
【讨论】:
以上是关于通过 wso2 esb 代理的工作日服务的主要内容,如果未能解决你的问题,请参考以下文章
使用 WSO2 ESB 从 HTTP 切换到 RabbitMQ