1

Oauth セキュリティと acl spring セキュリティの両方を統合しようとしています。

以下の oauth 式ハンドラーの代わりに

<sec:global-method-security pre-post-annotations="enabled" proxy-target-    class="true">
<sec:expression-handler ref="oauthExpressionHandler" />
</sec:global-method-security>

設定に従って acl 式ハンドラーを使用しました

http://krams915.blogspot.in/2011/01/spring-security-3-full-acl-tutorial_30.htmlで説明されているように。

テーブルに acl エントリを作成できますが、@PostFilter を使用している間、メソッドによって返されるオブジェクトは acl 権限を使用してフィルタリングされません。

誰か助けてくれませんか

4

1 に答える 1

1

私の構成では、 @PostFilter を非アクティブにする2つの間違いを犯しました。

  1. 上記のコメントで Denim が語ったように、ディスパッチャ サーブレットによってコンポーネント スキャンを 2 回ロードし、コンテキスト ローダー リスナを使用してディスパッチャ サーブレット xml を再度ロードしました。この変更により、コンテキスト i,e を宣言したパッケージ内の注釈を検出できました。 webapplication module.しかし、私のサービス モジュールでは、注釈が検出されませんでした。

2私のサービスレイヤーの問題は

私は以下のようなサービスクラスを持っていて、以下のように注釈を適用しました

@Service("a")
@Transactional    
Class A{

public List<Users> getUsers() {
getNames();
}

@PostFilter("hasPermission(filterObject,'edit')")
 public List<Users> getNames() {

}

両方のメソッドが同じプロキシにあり、参照できるため、注釈は考慮されません。

以下のURL

別のメソッド内のメソッド呼び出しで Spring AOP が機能しない

于 2016-02-26T12:34:40.740 に答える