我是新手,我很着急。我只是想对XML的一部分进行数字签名。
要签名的XML是这样的:
<?xml version="1.0" encoding="UTF-8"?><ns0:CEE_Adenda xmlns:ns0="http://adenda.es" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://adenda.es Test_v1.xsd">
<ns0:CEE version="1.0" xmlns:ns0="http://adenda.es">//XML to sing
............
</ns0:CEE>
<ns0:Adenda> //Part to exclude
......
</ns0:Adenda>
</ns0:CEE_Adenda>
Run Code Online (Sandbox Code Playgroud)
,以获得这样的结构:
<?xml version="1.0" encoding="UTF-8"?><ns0:CEE_Adenda xmlns:ns0="http://adenda.es" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://adenda.es Test_v1.xsd">
<ns0:CEE version="1.0" xmlns:ns0="http://adenda.es">//XML to sing
............
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>vMg+tzKiwC8epApusLGo23at0ss=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>dVqqHp437r7jAeEOB6mxgSOKnpT6EITRscd0mzA/zDep3Wkg1CM/m0ojDHnlkC7l
</ns0:CEE>
<ns0:Adenda> //Part to exclude
......
</ns0:Adenda>
</ns0:CEE_Adenda>
Run Code Online (Sandbox Code Playgroud)
这是我用来尝试对其进行签名的代码,但是我只需要对XML的一部分进行签名并将结果放入此标记中。
这是我正在使用的代码:
//Create a DOM XMLSignatureFactory that will be used to
// generate the …Run Code Online (Sandbox Code Playgroud) 使用以下配置 (doctrine.yaml) 在 Symfony 4 中使用 Doctrine DBAL:
dbal:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
driver_class: App\DBAL\Driver\PDOMySql\Driver
Run Code Online (Sandbox Code Playgroud)
和.env:
DATABASE_URL=mysql://root:passwd@127.0.0.1:3306/dbname
Run Code Online (Sandbox Code Playgroud)
我们无法通过 DBAL 连接到数据库:
$conn = DriverManager::getConnection(Constants::connectionParams,new Configuration());
Run Code Online (Sandbox Code Playgroud)
获取驱动程序中发生异常:找不到驱动程序异常。我在 S4 的这个版本中没有找到关于该错误的文档。