首页 > 其他分享 >xades4j : 如何创建-T

xades4j : 如何创建-T

时间:2023-06-06 13:24:17浏览次数:31  
标签:xml xades4j 创建 new 如何 org import properties

 用到哪些类,对应哪些元素

xades4j.properties.UnsignedProperties
xades4j.properties.UnsignedSignatureProperty
xades4j.properties.SignatureTimeStampProperty

 

 

具体实现

import java.util.ArrayList;
import java.util.Collection;

import org.apache.xml.security.signature.XMLSignature;
import org.apache.xml.security.utils.Constants;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

import xades4j.properties.SignatureTimeStampProperty;
import xades4j.properties.UnsignedProperties;
import xades4j.properties.UnsignedSignatureProperty;

 

    @Test
    public void testEnrichSignatureWithT() throws Exception {
        System.out.println("enrichSignatureWithT");
        // 1)取得xades-bes
        Document doc = getDocument("document.signed.bes.xml");

        // 2)取得 sinature 部分
        Element signatureNode = (Element) doc.getElementsByTagNameNS(Constants.SignatureSpecNS, "Signature").item(0);
        XMLSignature signature = new XMLSignature(signatureNode, "");

        // 3) 封装 signatureTimeStamp -> unsignedSignatureProperties ->
        // unsignedProperties
        SignatureTimeStampProperty signatureTimeStamp = new SignatureTimeStampProperty();
        Collection<UnsignedSignatureProperty> unsignedSignatureProperties = new ArrayList<UnsignedSignatureProperty>(1);
        unsignedSignatureProperties.add(signatureTimeStamp);
        UnsignedProperties unsignedProperties = new UnsignedProperties(unsignedSignatureProperties);

        // 改变前
        outputDocument(doc, "document.signed.bes.unenriched.t.xml");

        // 4)change
        XadesSignatureFormatExtenderImpl formatExtender = (XadesSignatureFormatExtenderImpl) new XadesFormatExtenderProfile()
                .getFormatExtender();
        formatExtender.enrichSignature(signature, unsignedProperties);

        // 改变后
        outputDocument(doc, "document.signed.bes.enriched.t.xml");
    }

 

结果对比

 vs 

 

标签:xml,xades4j,创建,new,如何,org,import,properties
From: https://www.cnblogs.com/zno2/p/6509003.html

相关文章

  • xades4j 苦苦寻找的是啥 (源码 == 找到了测试用例 == 找到了用法)
    <dependency><groupId>com.googlecode.xades4j</groupId><artifactId>xades4j</artifactId><version>1.3.2</version></dependency>https://github.com/luisgoncalves/xades4j源码和junit(大量的测试用例,告诉我们什么是xades......
  • 如何从抓包文件中分析慢请求
    请求慢的原因很多,当出现前端反应接口慢时,而通过后端日志查看请求处理时间并不慢时,往往会手足无措,当面对网络问题出现手足无措时,这就是在提醒你该抓包分析了,那么一般如何根据抓包文件去分析慢请求呢,今天我们就来看看。抓包文件分析准备用我在测试环境抓到的包去进行分析,首先执行......
  • 如何在运行并调试React Native App
     1.进入工程目录,启动:Metro  npxreact-nativestart 2.然后在新的terminal窗口中运行app   npxreact-nativerun-ios第1,2步参考:https://reactnative.dev/docs/environment-setup#running-your-react-native-application这时你的程序应该运行起来了。每次操作可......
  • 如何在Python中使用JSON模块
    JSON(JavaScriptObjectNotation)是一种流行的轻量级数据交换标准。它表示由键值对组成的数据结构,非常简单易懂。JSON已成为在线服务之间数据交换的行业标准。它广泛用于现代编程语言,包括Python。JSON数据经常表示为嵌套字典、列表和标量值,例如文本、数字、布尔值和空值。之所......
  • 如何设计React应用程序的样式——比较不同的选项
    样式在创建具有视觉吸引力和用户友好的Web应用程序方面起着至关重要的作用。对于React应用程序,可以通过多种方式来设置组件和UI元素的样式。在本文中,我们将探讨几个流行的选项,包括纯CSS、CSS模块、CSS预处理器、TailwindCSS、CSS-in-JS库(如StyledComponents)以及预构......
  • MobPush 创建推送
    功能说明MobPush提供遵循REST规范的HTTP接口,适用各开发语言环境调用。IP绑定工作台可以绑定服务器IP地址,未绑定之前所有IP均可进行RESTAPI的调用,绑定后进仅绑定的IP才有调用权限。调用地址POSThttp://api.push.mob.com/v3/push/createPush请求头字段名类型选项含义Content-Typestr......
  • 好选客干货分享:文具用品如何找外贸客户
    文具概述文具是指各种用于写作、绘画、记录和办公等活动的工具和用品,帮助人们完成学习、办公、创作和日常生活中的各种任务,提高工作和学习效率。BystockpicviaPixabay文具种类繁多,在多个商品类章中均有分布,常见的有:编码商品名称4202衣箱、提箱、小手袋、公文箱、公文包、书包、......
  • Linux中grep命令如何使用?其语法是什么?
    在Linux中,grep命令用于查找文件里符合条件的字符串或正则表达式,其语法为“grep选项模式文件”,是运维工程师常用的命令之一。接下来这篇文章为大家详细介绍一下Linuxgrep命令,快来看看吧。Linuxgrep命令用于查找文件里符合条件的字符串或正则表达式。grep指令用于......
  • flink中一个多输入的算子如何决定是否可以往下游算子发送barrier
    在Flink中,多输入的算子在决定是否可以往下发barrier时需要满足以下条件:输入流的barrier对齐:多输入的算子必须要求所有输入流都处于barrier对齐状态,即收到了相同的barrier。这意味着所有输入流的上游任务都已经收到了相同的barrier,并向下游发送了确认消息。所有输入......
  • mvn创建脚手架,并通过脚手架生成代码
    一、编写项目模版1.1、首先需要创建一个基础项目,用于生成脚手架工具,这个基础项目可以是当前项目使用的项目。springboot项目模板:1.2、需要关注一下groupId、artifactId、version这三个值。<groupId>com.xxx.demo</groupId><artifactId>xxx-demo</artifactId><version>0.0......