1

コントローラーを保護しようとしています:

@Secured(['ROLE_ADMIN'])
class FooBarController {

}

UrlMappings にコントローラーをマップしました。

"/foo/bar"

コントローラーにアクセスしようとすると/foo/bar、注釈が事実上無視されるようです。

を使用する必要があると書かれているものを見ましたcontrollerAnnotations.staticRules。私の最初の質問は次のとおりです。

  1. すべてのルールを静的ルールに複製する必要がありますか? それとも、セキュリティで保護されていて、フィルターが注釈から特定のルールを取得すると言うだけで十分ですか?

UrlMappings でコントローラーを保護する別のシナリオがあります。デフォルトの URL パスは変更されますが、コントローラー名は変更されません。

@Secured(['ROLE_ADMIN'])
MyApiController {

}

UrlMapping は次のとおりです。/api/company/1/myApi

この場合、staticRules で必要な構成を行わずにアノテーションが取得されるため、どこで、どのような状況で何を構成する必要があるかについてかなり混乱しています。

4

1 に答える 1

0

ここでの問題は、UrlMapping が既定のコントローラー マッピング規則と一致しないことです。つまり、Config.groovy マッピングは、実際のコントローラー名ではなく、UrlMapping を参照しています。

詳細な説明については、 https ://stackoverflow.com/a/16737980/57357 の回答を参照してください 。

IMO これは直感的ではありませんが、それが現在の動作方法です。InterceptUrlMap スタイルの構成を使用する場合、この方法では機能しないことに注意してください。InterceptorUrlMap スタイルを使用する場合は UrlMappings.groovy の URL マッピングを参照します。

于 2015-01-14T17:11:30.383 に答える