2014-01-21 30 views
1

我正在JSP中開發GAE上的應用程序。我們擁有一個包含Google Apps for Business的私人域,這意味着該應用程序僅適用於我的組織成員。不過,我想限制這些權限,以便只有特定的用戶才能訪問該應用。更好的是我想創建角色。不幸的是,從域管理頁面,我無法爲GAE應用程序定義權限。有什麼我失蹤?我必須手動處理它們嗎?如果是這樣,怎麼樣?唯一出現在我腦海的是一張電子表格,我在那裏保存了權限,但這並不聰明......謝謝。如何處理GAE應用程序中的權限

回答

1

我需要一個封閉的業務應用程序並編寫自定義代碼。 Java設計的每個安全對象都有一個Access Control List。每個ACL保存爲一個字符串,用於最少的數據存儲開銷並根據需要進行重構。資源訪問被類似的東西守衛着:

if (resource.permissions.granted(user, operation) { 
    // do the operation 
} else { 
    // send an informative 'access denied' response 
} 
+0

所以你會建議使用DataStore而不是電子表格? – raz3r

+0

是的,原因如下。 AppEngine直接在Datastore上運行,因此訪問效率很高。它的API非常簡單,其可伸縮性非常大。其無模式結構(或者應用程序定義的模式,如果您實現的話)比電子表格的剛性(表格,行,列)結構更靈活。 –

+0

良好的發現,你是對的,它實際上很容易。我能夠在半小時內實現它(至少對於單個頁面)。謝謝。 – raz3r

1

我建議使用Google網上論壇來定義應用程序角色。一旦您對用戶進行了身份驗證,您就可以閱讀他們的組成員身份,以確定應爲您的應用提供哪些角色。

+0

是否有任何通過UserService類檢索用戶成員身份或是否必須通過Google Groups API? – raz3r

1

簡短的回答是,你將不得不手動處理角色和東西。

但從谷歌App Engine的角度來看,有限制您的應用從谷歌Apps域只有用戶的方式,通過從應用程序設置改變認證類型,但僅供參考,你將無法將其改回。

此外,還有一種方法可以將某些URL限制爲僅適用於該應用的管理員,而管理員是位於儀表板的權限頁面上的列表。

我從來沒有使用過Java,但是您可以在Deployment Descriptor中閱讀更多內容。

話雖如此,它是非常有限的,你可以實現,如果你想有更多的角色或每個登錄用戶做更具體的任務,你將不得不自己實現這些東西。跟蹤已登錄的用戶並在應用內爲他們分配角色,並根據登錄的用戶允許或不執行任務。

相關問題