【问题标题】:Why access denied (java.lang.RuntimePermission setSecurityManager) in my java Applet?为什么在我的 Java Applet 中访问被拒绝 (java.lang.RuntimePermission setSecurityManager)?
【发布时间】:2022-12-05 18:01:49
【问题描述】:

我有一个现有的非常非常旧的 java applet,它使用:

<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.插件 maven-jar-插件 符号 .keyticket 票 票 武士刀 ${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)

我想我的罐子没有签名。 我看到用于签名的现有“.keyticket”似乎没有使用 java 1.8 的有效签名级别。 所以我修改构建机器上的 java.security 以接受旧的签名过程。 罐子似乎已签名:

【问题讨论】:

    标签: java applet signed-applet signer


    【解决方案1】:

    最后,我使用以下命令为我的 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>
    

    现在它工作得很好。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 2013-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2016-04-06
      相关资源
      最近更新 更多