2012-08-16 109 views
3

我已經開發了一個應用程序,直到現在我已成功地通過不顯示/隱藏菜單選項或某些屏幕的按鈕來限制屏幕訪問。但現在的問題是用戶能夠在地址欄中鍵入url時訪問屏幕。如何限制Web應用程序中的屏幕訪問..?

我知道我不是第一個這樣做,所以必須有某種標準的做法。 所以如果有人知道任何圖書館或某種方式來做到這一點,請讓我知道。

謝謝。

+0

查看此[庫](https://github.com/cemerick/friend/)從基於環的Web應用程序的身份驗證和授權。 – Ankur 2012-08-16 06:17:05

回答

2

免責聲明 - 我不知道這將如何轉化爲Clojure,因爲我從來沒有使用它。

通常情況下,您會使用授權處理程序來裝飾響應視圖的方法。該處理程序知道如何與您的身份驗證後端進行通信。它從當前上下文獲取用戶標識符(可以是用戶標識符/用戶名等),並向後端查詢用戶對請求視圖的授權。

如果通過,則顯示視圖。

如果它被拒絕,那麼根據業務規則(和安全準則)採取行動。這些可以像友好一樣簡單「你不允許在這裏」;記錄操作然後結束用戶的會話。

如果您的應用程序有一組有限的端點(URL),您可以爲用戶創建端點的靜態地圖並將其用作您的訪問控制列表(ACL)。但是,在大多數現代應用程序中,ACL是在一系列對象中進行控制的 - 並且端點(URL)不受限制,因爲它們是動態的。例如/inventory/product/1/user/admin/3

更新:

link提供裝飾圖案的視覺示圖。

更新2:

授權庫提供一些助手,會做的授權檢查(「這是用戶允許查看」),但在執行代碼是留給各個應用。

通常你會使用一個或多個認證庫(如誓言);但授權部分留給您的實施。

一個快速的谷歌帶我到securing clojure web applications with sandbar這應該與你更相關。

+0

謝謝..同樣在我心中..我可以使用這樣做的前路線。但似乎有其他方法可以做到這一點。像一些授權庫,如果我是正確的.. – ngesh 2012-08-16 05:39:24

相關問題