JavaEE + JBoss:验证所有部署的war文件
Posted
技术标签:
【中文标题】JavaEE + JBoss:验证所有部署的war文件【英文标题】:JavaEE + JBoss: Verify all deployed war files 【发布时间】:2019-05-29 19:19:14 【问题描述】:我的客户有一台符合 JavaEE 的服务器。我向他发送了一些战争文件和相应的校验和以进行部署。现在我想防止操作员在部署之前操纵war文件。
是否有可能在服务器启动时沿校验和验证 war 文件?是否有可能获得当前部署的战争文件的校验和?例如,是否已经有这样的功能? JBoss EAP?
【问题讨论】:
您可能想尝试Signing and Verifying JAR Files 来完成此操作。您可以对 WAR 文件进行签名,就像它是 JAR 文件一样。 其中一种方式:# sha1sum TestApp.war cb16a87d23644fb166000b4b739ef12257b77326 Test.war
- 以上值应与 # ls -lart drwxrwxr-x. 2 tmp tmp 4096 Jan 8 03:38 16a87d23644fb166000b4b739ef12257b77326
托管部署(war/ear/jar)在部署时被散列:这个散列可以通过 jboss-cli 访问:
/deployment=helloworld-mdb.war:read-resource(include-runtime)
"outcome" => "success",
"result" =>
"content" => ["hash" => bytes
0xd1, 0xa1, 0x0a, 0xb1, 0x0a, 0xe5, 0xd9, 0xeb,
0x9d, 0x86, 0xba, 0x66, 0x8e, 0x24, 0x14, 0xc0,
0x13, 0x72, 0xd1, 0x1a
],
"disabled-time" => undefined,
"disabled-timestamp" => undefined,
"enabled" => true,
"enabled-time" => 1546534691069L,
"enabled-timestamp" => "2019-01-03 17:58:11,069 CET",
"managed" => true,
"name" => "helloworld-mdb.war",
"owner" => undefined,
"persistent" => true,
"runtime-name" => "helloworld-mdb.war",
"status" => "OK",
"subdeployment" => undefined,
"subsystem" =>
"messaging-activemq" => undefined,
"undertow" => undefined,
"ejb3" => undefined,
"logging" => undefined
您可以看到以字节为单位的“哈希”
【讨论】:
其中一种方式:# sha1sum TestApp.war cb16a87d23644fb166000b4b739ef12257b77326 Test.war
- 以上值应与 # ls -lart drwxrwxr-x. 2 tmp tmp 4096 Jan 8 03:38 16a87d23644fb166000b4b739ef12257b77326
以上是关于JavaEE + JBoss:验证所有部署的war文件的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Jboss EAP 6.4 中部署的所有战争的 manifest.mf 文件中获取实现版本详细信息
如何从 Eclipse 将 Maven 项目的 WAR 部署到 JBoss 服务器?