2016-05-30 6 views
0

私はパラメータでサービスメソッドを持っているが、以下のようにアイテムIDのコレクションです:@PreAuthorizeをコレクション内のIDとともに使用するにはどうすればよいですか?

List<Item> getItems(Collection<Long> itemIds) 

は、どのように私はそれを確保するために@PreAuthorizeを使用することができますか?

@PostFilterのみを使用する必要がありますか?私は、メソッドが実行される前にチェックをしたいと思います:)

+0

'@ PreAuthorize'がこの目的を達成できる場合、より意味的に一致すると思います。 – RichardMZ

答えて

0

たぶん、あなたが望むもの@PreFilterです:

@PreFilter("hasPermission(filterObject, 'com.example.Item', 'read')") 
List<Item> getItems(Collection<Long> itemIds) 

注ユーザーは黙って破棄されるための許可をしていないアイテムIDという。

+0

'オブジェクト1からIDを抽出できませんでした'というメッセージとともに 'org.springframework.security.acls.domain.IdentityUnavailableException'をスローします。 – RichardMZ

+0

@RichardMZ 3つのパラメータで 'hasPermission'を呼び出していますか?そのメソッドはその例外をスローするべきではありません。 – holmis83

+0

申し訳ありません。私が言ったのは、HttpResponseの例外とメッセージの表示です。コンソールの例外は「java.lang.NoSuchMethodException:java.lang.Long.getId()」です。そして私は3つのパラメータで 'hasPermission'を呼び出しました:) – RichardMZ

関連する問題