- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
经过大量阅读和测试后,我无法通过 codeBase 授予选项将所有权限授予 Intranet applet。此小程序需要完全权限,因为它必须访问 OCR 阅读器(也将图像文件写入硬盘)和其他此类外部设备的驱动程序库。
我已经配置了我的 java.policy 文件并添加了以下内容:
grant codebase "<a href="http://myIntranetServer/-" rel="noreferrer noopener nofollow">http://myIntranetServer/-</a>" {
permission java.security.AllPermission;
};
在控制台中重新加载策略文件,甚至重新启动浏览器后,我得到一个 java.security.AccessControlException:access denied for my many operations,包括读取“user.name”系统属性,这不是由默认。
为了调试,我也试过默认授予所有权限并且它有效,所以我的问题基本上与 de codeBase 选项有关。我正在运行带有 JRE1.6-u17 的 Windows 7 和 Linux 客户端,两者具有相同的行为。
有人能帮忙吗?
提前致谢
马德拉A
最佳答案
我不确定我是否正确理解了您最后的评论。当你陈述两个(对我而言)不同的事情时:
我认为后一种解释是正确的。
如果你只是调用 java 方法(通过 liveconnect),它不做任何与安全相关的事情,一切都很好。您可以直接在您的 javascript 代码中执行(假设小程序带有 id="myapplet"
)myapplet.safeMethod();
。
从 javascript 调用 java 方法的主要问题是调用 java 方法的主要问题是调用似乎在 JVM 中的不同上下文中运行,然后是 applet 本身。因此被视为非特权代码,您会得到 AccessControlException
。虽然例如就像在我的其他答案中一样,由小程序本身执行的方法获得正确的权限并执行。
现在,如果您阅读此 LiveConnect Support in the New Java™ Plug-In Technology在 2.8 Security Model of JavaScript-to-Java Calls 部分太阳状态
When a JavaScript-to-Java call is made, the JavaScript code is modeled as though it were coming from an untrusted applet whose code origin is the document base (i.e., the URL of the directory containing the document).
我这样理解:如果小程序和 javascript 来自同一站点,则 javascript-to-java 调用应该以与小程序本身相同的权限运行。在我们的例子中,这意味着我们在 grant
中设置的任何权利。
但这只适用于我的 Opera。 FF 和 IE6 都抛出 AccessControlException
。但它可能仍然适用于所有浏览器。
下面的代码有两个方法userName2()
和userName()
。 userName2()
所有浏览器中的 WFM。 userName()
仅适用于 Opera。通过按 html 页面上的按钮进行检查。
如您所见,userName2()
不能像这样用于实际用例(只能调用一次)。但是您可以查看其他人在遇到类似问题时提出的解决方案,并相应地扩展 userName2()
此外,您可能会考虑我没有尝试过的东西。所有从 javascript 到 java 的调用都不做任何与安全相关的事情,只是(如果需要)传递数据并立即返回。然后小程序执行实际工作(如上面显示的链接)。然后当完成时,小程序可以通过 JSObject
(plugin.jar)
测试应用程序.java
import java.applet.Applet;
import java.awt.*;
import java.security.AccessControlException;
public class TestApp extends Applet {
Label output = new Label("What is the value of user.name?");
String userName;
Thread access = new Thread() {
@Override
public void run() {
try {
userName = System.getProperty("user.name");
} catch (AccessControlException e) {
userName = "Oops, failed in thread. No read permissions!";
}
}
};
public void init() {
setLayout(new BorderLayout());
add(BorderLayout.CENTER, output);
}
public String userName2() throws InterruptedException {
access.start();
access.join();
output.setText(userName);
return userName;
}
public String userName() {
String userName = "Oops, failed in liveconnect-context. No read permissions!";
try {
userName = System.getProperty("user.name");
} catch (AccessControlException e) {
e.printStackTrace();
}
output.setText(userName);
return userName;
}
}
测试.html
<html><head><title>test</title></head><body>
<applet id="myapplet" code="TestApp" width="350px" height="80px"></applet><br>
<input type="button" value="liveconnect version" onclick="javascript:alert(myapplet.userName());"><br>
<input type="button" value="hacky thread version" onclick="javascript:alert(myapplet.userName2());">
</body></html>
策略:.java.policy(在 C:/Documents and Settings/[USERNAME]/中手动创建,请注意前导 。
)
grant codeBase "http://[domain].xxx/-" {
permission java.util.PropertyPermission "user.name", "read";
};
关于java - 无法为 Intranet 小程序配置 AllPermission。谁能帮忙?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1751412/
我有一个 MVC 应用程序,当我将 Intranet 站点(下图中的 http://192.168.72.196)添加到 Internet 选项中的本地 Intranet 站点时,出现 jQuery
我们经常让我们的客户相信拥有优质内联网和系统的值(value),但在我的组织内,我们似乎并没有“吃自己的狗粮”。 我们的 Intranet 系统真的很乏味——一个没有人真正监督的匆忙组装的共享点安装。
我已将“Artifactory”设置为 Intranet maven 存储库。我有与故障转移相关的问题。 项目 POM central http:/
现在,当然,这可能是由于对 Plone 中的角色/权限模型的误解,因为它与我过去使用过的许多系统略有不同,但这是情况和我得到的地方卡住了。 -- 客户需要一个 Plone 站点 (4.3.3) 仅限于
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭5 年前。 Improve
我的一台 Linux 机器上运行着 Apache2,我经常使用它从家庭网络上的其他机器上浏览该机器上的本地网站。 但我只能通过IP地址访问服务器来实现。 我希望能够通过主机名或其他任意的、难忘的字符串
我正在使用 Plone 5,我创建了一个公共(public)站点,我想将其转换为内部网,我已经安装了 Workflow 插件,但我似乎找不到将内部网策略应用到该站点的方法我已经创建了。有谁知道我做错了
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
我是一名 Mac 用户,网页设计师,试图了解 IE 11 的“以兼容模式显示 Intranet 站点”选项 我有一个客户,一家建筑公司,曾经在他们的 Windows 服务器上托管他们的旧网站(我没有开
我公司想提供室内导航解决方案。我们有硬件并且可以提供位置数据。为了不必编写我们自己的 map 、路线、导航解决方案,我想使用现有的 indor map 解决方案。我最担心的是,将使用我们的软件的场所将
我正在寻找基本的使用分析以应用于托管在公司 SharePoint 服务器上的 html 页面。谷歌分析可能因此无法工作 The Google Analytics JavaScript won't wo
试图弄清楚是否有一种方法可以在 php 页面中嵌入一个窗口,该窗口显示用户所在计算机上的本地目录。 ..能够将文件从该窗口拖放到页面另一半等待的 jquery uploader 中。这个 jquery
由于大多数访客计数服务都是基于测量公共(public)网站,因此我无法使用此类服务。 我的目标是衡量每天有多少独立访问者在特定的 Intranet 站点上冲浪。问题是我的技术可能性非常小,因为我获
我们如何使用组件类型浏览器从 jsp 中检索 Intranet 上文件夹的完整路径 最佳答案 不应该这样做。想想这将是一个多么大的安全漏洞。 关于java - 检索 Intranet 上文件夹的完整路
基本要求: 应该能够索引 MediaWiki、Confluence、Sharepoint、GitHub:Enterprise、Askbot 等内容 应该相当聪明地去除重复结果(Confluence 搜
我将如何设置我的数据库以使其能够从我网络上的其他计算机访问。我想为使用此数据库的家用计算机创建一个本地网站和/或应用程序。 如何设置数据库以通过家庭网络访问? 如何创建允许网络上的任何人连接的本地网站
我开发了一个桌面应用程序,该应用程序是我使用 WPF、WCF、EF 4 和 SQL Seerver 2008 R2 的组合创建的。 现在我必须为安全审计准备我的软件,我需要知道我能做些什么来确保我的应
我们目前有一个使用 ASP.NET 构建的企业内部网,最初是为 IE 设计的。 Intranet 的目的之一是管理文件版本并使用当前文件版本启动程序。这需要 Intranet 在本地机器上启动进程,并
我在使用集成了共享点、SQL 报告服务和一堆使用 ASP.NET MVC 构建的自定义表单的应用程序时遇到了一些问题。 假设我的服务器如下; 苔藓 SSRS 自定义表单 在 MOSS 中,我的门户有时
我是一名优秀的程序员,十分优秀!