2010-07-20 65 views
2

我正在使用JBoss在AIX unix框中託管Java Web服務。將Java web服務與Unix安全性集成

某些web方法瀏覽unix文件結構(IE GetDirectoryFiles返回傳入的目錄路徑的所有文件)。

我想把它與unix安全集成起來,這樣調用者就可以在會話級別傳入用戶名/密碼,並且他們將被限制在他們有權訪問的基於該用戶名/密碼的文件/目錄中服務器用戶。例如,如果服務器的主目錄設置爲/ home/me,並且無法瀏覽其主目錄,那麼Web服務將只允許與方法調用相同的用戶。他們可以調用'/ home/me/dir',但不能'/ home/notme/dir'(會拋出拒絕訪問異常)。

我該怎麼做呢?

+0

請注意,一個天真的實現將允許服務器上的全速蠻力字典攻擊。 – 2014-01-14 21:29:12

回答

0

您將要面對的問題是JBoss進程已經作爲特定用戶運行,因此該進程中的某個線程完成的任何操作都將以該用戶的權限運行。

我相信最簡單的方法是使用Runtime.getRuntime()。exec(...)以不同的用戶身份啓動一個新進程來完成每個Web方法的unix部分 - 請參閱this question

+0

解決方案在我的情況下並不奏效,但答案確實解決了這個問題。 – Kenoyer130 2010-07-24 18:09:04