2012-06-26 94 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