【问题标题】:What is the equivalent security features for the obsolete com.ms.security?过时的 com.ms.security 的等效安全功能是什么?
【发布时间】:2012-04-20 14:00:05
【问题描述】:

背景

我偶然发现了我的一个非常过时的旧小程序(其中的一部分来自 2001 年),我真的很想把它从死里复活!小程序应该在其本机应用程序中打开一个文件(除其他外),但这不适用于最新的 Windows 版本(包括 Windows 7),它在 Windows XP。

        try {
                if (Class.forName("com.ms.security.PolicyEngine") != null) {
                    PolicyEngine.assertPermission(PermissionID.EXEC);
                    PolicyEngine.assertPermission(PermissionID.FILEIO);
                    PolicyEngine.assertPermission(PermissionID.NETIO);
                    PolicyEngine.assertPermission(PermissionID.UI);
                    PolicyEngine.assertPermission(PermissionID.USERFILEIO);
                    PolicyEngine.assertPermission(PermissionID.CLIENTSTORE);
                } 
                else {
                } 
         } catch (Throwable e) {
         }

问题/解决方案

我很确定上面的代码与它有关。是否像完全删除此代码然后重新签署小程序一样简单?或者我需要在签名之前用 java.security 包重新实现它吗?如果我需要用 java.security 重新实现它,只使用类似的东西就足够了吗:

       try {
                if (Class.forName("java.security.Policy") != null) {            
                    final Permissions permissions = new Permissions();
                    permissions.add( new java.security.AllPermission());
                    } 
                else {
                }                 
        } catch (Throwable e) {
        }

我需要什么才能让它在 Windows 7 上运行?

小程序使用 Java 版本 1.5.0 (J2SE 5.0)。

.

干杯。

更新

这是在 Windows XP 中工作的代码,但在 Windows 7 中似乎无法执行。

    String command = '"' + sDir + sFileName + '"';
    Runtime myRuntime = Runtime.getRuntime();
    try {
        myRuntime.exec("rundll32 SHELL32.DLL,ShellExec_RunDLL " + command);
        gGfx.setStatusText("File opened.");
        gGfx.drawStatusBar(1);
    } catch (IOException e) {

        System.out.println("Error " + e.getMessage());
    }

【问题讨论】:

  • "Applet 应该在其原生应用程序中打开一个文件" 如果您的客户端可以运行 1.6 VM,请查看Desktop.open(File)"(以及其他内容) " 还有什么?
  • 我只想在 1.5 版中执行此操作。 “除其他外”,例如创建/读取/编辑/打开/删除文件。所有这些都适用于运行 Windows XP 的小程序。

标签: java windows security applet


【解决方案1】:

是否像完全删除此代码然后重新签署小程序一样简单?

这就是这里的解决方案。

【讨论】:

  • 好的,我正在尝试这个。既然我想出了答案,但你帮我想出了答案。如果可行,我会接受你的回答 :) 我认为这样才公平。
  • 另一种方法是将其添加为您自己的答案,并将其标记为正确。鉴于我在回答中带来的丰富经验,但我认为这两种方式都是 50/50。这条评论更长。 ;)
  • 抱歉,这没有做到。我仍然收到警告“包含签名和未签名代码”,然后如果我单击是。我得到“受信任的加载程序试图从 [link] 加载沙盒资源。”
  • 很有趣。现在它甚至不能在 Windows XP 中运行。如果我在“阻止运行可能不安全的组件?”-警告上按“否”,则不会发生任何事情(与 Windows 7 一样)。
  • “包含签名和未签名的代码” 这通常意味着有多个 Jar,或者 Jar 和松散类文件的混合。用于启动它的小程序元素是什么?使用代码格式将其编辑到问题中。
猜你喜欢
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
  • 2011-10-18
  • 2015-10-24
  • 1970-01-01
  • 2011-07-07
相关资源
最近更新 更多