Mam aplikację Grails (2.0.4) z wtyczką Spring Security (wersja 1.2.7.3) i bezpiecznym podejściem do adnotacji (domyślnie, więcej here).Reguły statyczne sprężyn zabezpieczających Grails dla zasobu odpoczynku wydają się nie działać poprawnie
Teraz mam te linki w UrlMapping.groovy z kluczowym zasobem lub pary kontroler/akcja, podobnie jak to:
"/$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')
relaksującego odwzorowanie doskonale współpracuje z ItemRestController: każdy sposób (show, aktualizacji, zapisz, usuń) jest poprawnie odwzorowany za pomocą właściwej metody HTTP. Dodatkowa metoda (batchDelete) również działa.
I zabezpieczone url API, w ten sposób:
grails.plugins.springsecurity.controllerAnnotations.staticRules = [
// ...
'/something/**': ['IS_AUTHENTICATED_FULLY']
'/api/**': ['IS_AUTHENTICATED_FULLY']
]
Teraz przekierowany na stronę logowania, jeśli rozmowy:
http://host/context/something/bla_bla
Ale jeśli zadzwonię (z odpowiednim ładunkiem , gdy jest to wymagane):
http://host/context/api/item/batchDelete
http://host/context/api/item/1
http://host/context/api/item
Podejrzewam, że statyczne reguły nie działają poprawnie podczas mapowania pozostałych elementów sterujących er za pomocą klucza zasobów.
Należy również pamiętać, że URL "coś" nie występuje w pliku UrlMapping.groovy.
Wszelkie pomysły?