我正在使用Spring安全性開發Spring MVC webapp。所以每個經過身份驗證的用戶都有一個指定的角色基於用戶角色的實體屬性訪問
基於這個ROLE,用戶只能修改實體屬性的一個子集。
現在我試圖通過在視圖中使用彈簧安全標籤來實現此目的,並根據記錄用戶的角色映射不可修改的字段與輸入類型隱藏。但我認爲它很快就會變成一場噩夢!我可以採取以保持事情有什麼其他辦法
<sec:authorize access="hasRole('ROLE_ADMIN')">
Value1: <input type="text" name="value1" value="${entity.value1}" />
Value2: <input type="text" name="value2" value="${entity.value2}" />
</sec:authorize>
<sec:authorize access="hasRole('ROLE_USER')">
Value1: <input type="text" name="value1" value="${entity.value1}" />
Value2: ${entity.value2}
<input type="hidden" name="value2" value="${entity.value2}" />
</sec:authorize>
<sec:authorize access="hasRole('ROLE_GUEST')">
Value1: ${entity.value1}
Value2: ${entity.value2}
<input type="hidden" name="value1" value="${entity.value1}" />
<input type="hidden" name="value2" value="${entity.value2}" />
</sec:authorize>
:
舉一個簡單的例子,我做這樣的事情(管理員可以修改所有,用戶只能修改value1和客戶不能修改)儘可能簡單?
謝謝 馬爾科
你能告訴夫婦的例子嗎? –
我已經添加了簡單的示例代碼 – gipinani
就像註釋一樣 - 請注意,您還必須仔細檢查是否只在後端修改了允許的字段,否則惡意用戶可能僞造POST請求並添加最初未顯示的字段表格。 –