首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用带签名、加密和编码的JAXB

使用带签名、加密和编码的JAXB
EN

Stack Overflow用户
提问于 2012-07-02 21:34:39
回答 1查看 1.4K关注 0票数 6

最近,我们的任务是为我们的产品制定一个XML通信规范。我的一些同事对JAXB在编组和解组XML文档方面有很高的评价。我花了一些时间玩弄它,我知道它们是从哪里来的。它使简单的XML文档变得简单。

现在让它更上一层楼。我希望在我们的通信模型中看到的一件事是,为在我之后使用它的人“内置”签名验证。我遇到的一个问题是,为了验证签名,我需要将相应的XML视为字节。让我们举个例子。

代码语言:javascript
运行
AI代码解释
复制
<topLevel>
    <sensitiveData encoding="UTF8">
        <creditCard>
            <number>1234-1234-1234-1234</number>
            <expDate>Oct 2020</expDate>
        </creditCard>
    </sensitiveData>
    <signatureOfSensitiveData algorithm="SHA1WithRSA">VGhpc0lzQVNpZ25hdHVyZQ==</signatureOfSensitiveData>
</topLevel>

编辑:我实际上并没有传递信用卡数据。这里只是一个例子。

如果我能获得"sensitiveData“标记内所有内容的byte[] (由编码决定)表示,那就太好了。我甚至不介意在那个byte[]上再次调用"unmarshall“。

这也为我们打开了其他的大门。我们实际上可以在元素中引入“压缩”和“加密”属性。如果我们可以将它们视为byte[],那么我们就可以对它们进行充气和解密,然后将它们传递出去,再次进行解组。

附注:我认为如果您对XML进行base64编码,然后将其包含在一个元素中,这是可行的。但这迫使我们base64甚至简单的文档,并在我们的消息中引入一些不必要的膨胀。

对此有什么解决方案吗?我希望我只是在JAXB中遗漏了一些基本的东西,在我获得这些东西之后,这将是轻而易举的事情。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-02-17 18:56:12

您可以使用支持WS-Security的JAX-WS框架。JAX-WS依赖于JAXB,但添加了支持SOAP协议的通信部分,并且WS-Security是SOAP/XML中XML签名、加密和其他安全特性的标准。WS-Security依赖于评论中提到的XML签名和加密标准。

这类框架的例子(非详尽列表):Apache CXF、Glassfish Metro等More info

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11301522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档