Java 7u51:LiveConnect (JavaScript) 由于安全设置而被阻止

Posted

技术标签:

【中文标题】Java 7u51:LiveConnect (JavaScript) 由于安全设置而被阻止【英文标题】:Java 7u51: LiveConnect (JavaScript) blocked due to security settings 【发布时间】:2014-02-27 16:11:57 【问题描述】:

您可以通过打开两次 .txt 文件(使用双击或“编辑文档”)或按“地球”来检查问题 here。 它不会在第二次和任何进一步的尝试中打开(在 Firefox 和 Chrome 中)。 Java 控制台中只出现了一个新行:

liveconnect: Security Exception: LiveConnect (javascript) blocked due to security settings.

证书有效:

这里是控制台中奇怪的行:

security: Trust for: http://...OpenDocument.jar has ended: Thu Jan 01 02:00:00 EET 1970
security: Validate the certificate chain using CertPath API
basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms
security: Validate the certificate chain using CertPath API

我尝试添加 Application-Library-Allowable-Codebase 清单属性,尝试添加时间戳

如何满足安全约束以避免这种安全异常?

Update1:​​小程序重新加载后可以再次运行。

Update2: JRE 版本 1.7.0_45 下不存在该问题

【问题讨论】:

【参考方案1】:

如果你使用 maven 使用这个设置

    <build>
  <plugins>
            <!--Set manifest file-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                        <manifest>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                        <!--Add manifest properties-->
                        <manifestEntries>
                            <Permissions>all-permissions</Permissions>
                            <Trusted-Library>true</Trusted-Library>
                            <Application-Library-Allowable-Codebase>*</Application-Library-Allowable-Codebase>
                            <Caller-Allowable-Codebase>*</Caller-Allowable-Codebase>
                            <Codebase>*</Codebase>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
</plugins>
</build>

【讨论】:

谢谢,但很遗憾,我没有使用 Maven。 我也面临同样的问题。如何找到清单文件?【参考方案2】:

通过将这些行添加到清单来修复(感谢this answer):

Trusted-Library: true
Caller-Allowable-Codebase: *

现在清单如下所示:

Manifest-Version: 1.0
Trusted-Library: true
Application-Library-Allowable-Codebase: *
Application-Name: ...
Permissions: all-permissions
Caller-Allowable-Codebase: *
Main-Class: ...
Codebase: *

此问题已在 Windows 和 MacOS 环境中修复。security: Trust for: .jar has ended 问题未修复。

【讨论】:

以上是关于Java 7u51:LiveConnect (JavaScript) 由于安全设置而被阻止的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 和 Java 小程序

将 Java 小程序放到服务器上

Java Web Start / 可拖动小程序

java.security.AccessControlException:访问被拒绝(“ java.security.SecurityPermission”“ authProvider.SunMSCA

Zookeeper 集群的安装及高可用性验证已完成!

java Examples-src-Main-OtherComparisonOperations-compareEncryptedDocsWithResultAndTargetExtension.ja