![](/img/trans.png)
[英]Applet error: access denied (“java.lang.RuntimePermission”)
[英]Why access denied (java.lang.RuntimePermission setSecurityManager) in my java Applet?
我有一個現有的非常非常舊的 java 小程序,它使用:
<dependency>
<groupId>com.al6</groupId>
<artifactId>rxtx</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>java</groupId>
<artifactId>plugin</artifactId>
<version>1.6.12</version>
</dependency>
在項目的lib目錄下有:
RXTXcomm.jar
RXTXcomm.jar.sig
rxtxParallel.dll
rxtxSerial.dll
org.apache.maven.plugins maven-jar-plugin sign.keyticket ticket ticket katana ${project.build.directory}/signed/${project.build.finalName}.jar 假<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>.keyticket</keystore>
<alias>ticket</alias>
<storepass>ticket</storepass>
<keypass>katana</keypass>
<!--
signedjar>${project.build.directory}/signed/${project.build.finalName}.jar</signedjar
-->
<verify>false</verify>
</configuration>
</plugin>
項目在java 1.6環境下運行良好,由java 1.6服務器搭建。
但是,如果我在新的 java 1.8 服務器上構建它,並使用 java 1.8 運行,我會遇到很多 major.minor 錯誤,因為該項目使用了一些舊的子庫。
所以為了避免出現問題,我將其保存在 pom.xml 中:
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
該項目編譯並運行,但我有一個:
訪問被拒絕 java.lang.RuntimePermission setSecurityManager)
我以為我的 jar 沒有簽名。 我看到用於簽名的現有“.keyticket”似乎沒有使用 java 1.8 的有效簽名級別。 所以我在構建機器上修改 java.security 以接受舊的簽名過程。 jar 似乎已簽名:
最后,我使用以下方法為我的 jar 生成一個新證書:
/opt/jdk/bin/keytool -genkey -keyalg RSA -alias myFirstKey -keystore myKeystore -validity 360
我在 maven 任務中添加新文件以對其進行簽名:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>myKeystore</keystore>
<alias>myFirstKey</alias>
<storepass>keypass</storepass>
<keypass>keypass</keypass>
<!--
signedjar>${project.build.directory}/signed/${project.build.finalName}.jar</signedjar
-->
<verify>false</verify>
</configuration>
</plugin>
現在它工作得很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.