2012-06-26 63 views
0

我有一个基于Java Web-Start的应用程序,它使用多个本机“.exe”实用程序。所有罐子都已签名,应用程序从用户处获得所有可能的权限(.jnlp描述符中的<security><all-permissions/></security>)。问题是这些“.exe”实用程序中的一个尝试打开并侦听某个端口,这会导致标准Windows防火墙窗口弹出。例如:从Java Web Start(JNLP)修改Windows防火墙规则

Example http://www.7tutorials.com/files/img/win_firewall/wf3.jpg

我希望用户不被带有那种任何消息后,他们同意给我的应用程序的JNLP启动期间不受限制的权限。据我所知,以编程方式添加防火墙规则可以使用netsh tool执行,也可以通过与注册表混合执行,两者都需要管理员权限。

我试图玩Elevation PowerToys,从Java调用它们,但他们弹出另一条消息,明确要求管理员权限。

问:是否有任何方法可以将我的“.exe”实用程序的规则添加到Windows防火墙中,而不会通过其他权限请求刺激用户?

回答

1

您在这里混淆了安全域--Java安全模型,并且您授予由jnlp执行的应用程序的权限与Windows可以理解的权限是分开的。启动的标准jnlp应用程序作为普通应用程序运行,但不提升。

我不认为没有请求高程是可能的;而你似乎已经掌握了这一点。

+0

谢谢你的回答。我理解安全域之间的区别,但只是希望可能将管理权限请求集成到最初的“您信任该应用程序吗?”中。 JNLP对话框。显然没有。 –

+0

不幸的是,不,这是不可能的。 java安全对话框未连接到Windows安全对话框。一次完成所有任务的唯一方法就是如果从Java中'您信任该应用程序'对话框被提升了 – Petesh