Spring Securityプラグイン(バージョン1.2.7.3)とセキュリティ保護されたアノテーションアプローチ(デフォルトのものは、here)を使用するGrails(2.0.4)アプリケーションがあります。Grails spring-securityの静的なリソースの静的なルールが正常に動作していないようです
さて、私はこのように、リソースキーまたはコントローラ/アクションのペアでUrlMapping.groovyにこれらのURLを持っている:
"/$controller/$action?/$id?" {
constraints {
// apply constraints here
}
}
// other rules, all working properly
"/api/item/$id?"(resource: 'itemRest')
'/api/item/batch-delete'(controller: 'itemRest', action: 'batchDelete')
RESTfulなマッピングがItemRestControllerで完璧に動作します:すべてのメソッド(ショー、更新、保存、削除)が適切なHTTPメソッドで正しくマッピングされているかどうかを確認します。そして、余分なメソッド(batchDelete)も同様に機能します。
私はこれやって、APIのURLを確保:私は(適切なペイロードを呼び出す場合
http://host/context/something/bla_bla
でもない:私が呼び出した場合、今
grails.plugins.springsecurity.controllerAnnotations.staticRules = [
// ...
'/something/**': ['IS_AUTHENTICATED_FULLY']
'/api/**': ['IS_AUTHENTICATED_FULLY']
]
を、私は、ログインページにリダイレクトされます、必要に応じて):
http://host/context/api/item/batchDelete
http://host/context/api/item/1
http://host/context/api/item
私の疑いのあることは、残りのコントロールをマッピングするときに静的ルールが正しく機能していないことですリソースキーを使用してください。
「something」というURLは、UrlMapping.groovyファイルには存在しません。
アイデア?私はあなたがurlMappingにマッピングされていない
grails.plugins.springsecurity.controllerAnnotations.staticRules = [
'/itemrest/**': ['IS_AUTHENTICATED_FULLY'],
//this will be redundant after the above rule I guess
'/api/**': ['IS_AUTHENTICATED_FULLY']
]
URLを使用する必要があると思います