2012-12-31 64 views
0

this article中,介紹了關於彈簧安全實現的3個模式。我想知道user schemaacl schema之間的區別,哪一個更好用,換句話說,我想知道每個域的用法,以便爲我的應用程序選擇最佳解決方案。春季安全中用戶模式和acl模式之間的區別?

+0

你是什麼意思的「架構」?什麼是用戶架構? –

+0

這是一個使用數據庫的spring安全模式。這裏是一個參考:http://springinpractice.com/2010/07/06/spring-security-database-schemas-for-mysql/ – AFF

+0

你能先描述你的應用程序嗎? – coderLMN

回答

2

如果沒有用戶架構,則不能使用ACL架構(因爲身份驗證過程取決於用戶架構,通常您總是需要身份驗證)。你有兩個選擇:

  • 用戶模式
  • 用戶模式& ACL模式

讓我們來看看他們能爲你做什麼:

用戶模式是用於認證和授權基於在角色。您可以保護URL或方法調用。通過用戶架構,您可以處理followig案例:

  • 具有ADMIN角色的用戶可以訪問/admin.html。
  • 具有PRODUCT_MANAGER角色的用戶可以訪問/add_product.html
  • 具有PRODUCT_MANAGER角色的用戶可以訪問/manage_product.html?id=x。
  • 具有PRODUCT_VIEWER角色的用戶可以訪問/view_product.html?id=x。

ACL架構用於增強授權。它將考慮實際的域對象。您將下列情況下能夠處理:

  • 與PRODUCT_MANAGER角色的用戶可以查看在/manage_product.html?id=136 只有當他是使用id = 136產品的擁有者。
  • 某些PRODUCT_MANAGER可以將自己的產品(id = 136)管理到另一個PRODUCT_MANAGER。

因此,繼續使用用戶架構,並在需要時添加後面的ACL架構。

相關問題