私はSpring Securityも使用してSpring MVC webappを開発しています。したがって、認証された各ユーザーには、指定された ROLE があります。
この ROLE に基づいて、ユーザーはエンティティ プロパティのサブセットのみを変更できます。
現在、ビューでSpringセキュリティタグを使用し、ログインしたユーザーの役割に基づいて、入力タイプを非表示にして変更不可能なフィールドをマッピングすることで、これに到達しようとしています。でも、すぐに悪夢になると思います!
簡単な例として、私は次のようにします (管理者はすべてを変更でき、ユーザーは value1 のみを変更でき、ゲストは変更できません):
<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>
物事をできるだけシンプルに保つために、どのような代替アプローチを取ることができますか?
ありがとうマルコ