10

私たちのアプリケーションでは、メカニズムを使用する予定でしたが、実装しているセキュリティがロール ベースよりもタスク ベースであるため、プレフィックスRoleVoterを削除したいと考えています。ROLE_

技術的には、実装に問題はありませんが、空の接頭辞を持つを使用するRoleVoterことはお勧めできません.

なぜだろう?

AFAICS、唯一の問題は、プレフィックスRoleVoterがないと、 が意図しない決定 ( IS_AUTHENTICATED_FULLYIS_AUTHENTICATED_REMEMBERED、... など) に参加し、棄権ではなくアクセス拒否を返す可能性があることです。

これが空のプレフィックスを持つ唯一の問題であることを確認していただけますか?

よろしくお願いします M.

4

1 に答える 1

15

はい。複数のボーターまたはカスタム ボーターを使用している場合、消費する属性を知る方法が必要です。たとえば、 があり、DayOfTheWeekVoter属性で定義されたリソースがある場合、 はユーザーがロール「ユーザー」を持っているためアクセスを許可する投票を行う可能性がありますがROLE_USER,DAY_MONDAY、月曜日ではないため はアクセスを拒否する可能性があります。RoleVoterDayOfTheWeekVoter

プレフィックスを設定しないRoleVoterと、ユーザーに「DAY_MONDAY」という名前の権限が割り当てられているかどうかがチェックされるため、このシナリオは機能しません。

ロールのみに関心がある場合は、接頭辞なしで実行するか、.hasRole('user')を使用しない式 ( など) を使用できますRoleVoter

于 2012-07-18T19:42:22.177 に答える