1

ACL pluginGrailsアプリケーションで使用しようとしています。このチュートリアルの例に基づいて、 http: //grails-plugins.github.com/grails-spring-security-acl/docs/manual/guide/3.%20Tutorial.htmlServiceを実装するを作成する必要があります。注釈@PreAuthorize, @PostAuthorize, @PreFilter, and @PostFilter

サービスを作成するのではなく、このアプローチをコントローラーに実装したかったのです。@PreAuthorizeアクションの上部でを使用しようとしましたが、エラーメッセージが返されます。

Annotation @org.springframework.security.access.prepost.PreAuthorize is not allowed on element FIELD

@PreAuthorizeこれは、コントローラーの各アクションを呼び出すためにアノテーションが適切でないことを意味しますか?

助けてください。

4

1 に答える 1

3

はい、コントローラーでは機能せず、サービス (および他の Spring Bean) でのみ機能します。コントローラーはSpring Beanであるため、2.0コントローラーのメソッドで機能する可能性がありますが、試したことはありません。

問題は、Groovy の概念であるため、Spring Security がクロージャーについて何も知らないことです。それらは Grails によって Web リクエストを処理するために呼び出されますが、Spring はメソッドでのみ機能するため、Spring によって傍受することはできません。

これは、トランザクション サービスと閉鎖の問題に関連しています。Spring はクロージャーを認識しないため、サービスでクロージャーを定義してトランザクションにすることはできません。Groovy ではクロージャーをメソッドのように呼び出すことができますが、それは単なる構文糖衣です。

于 2012-05-04T03:25:59.563 に答える