…is supported by TouK. OpenRaktor is an event gathering every month the whole Warsaw startup scene in one place to collaborate. Why the best Polish IT students don’t do startups… and how to fix that! – this subject will be discussed today evening at 7 p.m. in Reaktor (Bohomolca 15).
You May Also Like
TouK na targach pracyTouK at the job fair
- byAgata Madaj
- March 1, 2013
Spring Security by example: securing methods
- byJakub Nabrdalik
- March 30, 2011
1. Set up and form authentication
2. User in the backend (getting logged user, authentication, testing)
3. Securing web resources
4. Securing methods
5. OpenID (login via gmail)
6. OAuth2 (login via Facebook)
7. Writing on Facebook wall with Spring Social
Securing web resources is all nice and cool, but in a well designed application it's more natural to secure methods (for example on backend facade or even domain objects). While we may get away with role-based authorization in many intranet business applications, nobody will ever handle assigning roles to users in a public, free to use Internet service. We need authorization based on rules described in our domain.
For example: there is a service AlterStory, that allows cooperative writing of stories, where one user is a director (like a movie director), deciding which chapter proposed by other authors should make it to the final story.
The method for accepting chapters, looks like this:
Grails render as JSON catch
- byTomasz Kalkosiński
- November 21, 2012
One of a reasons your controller doesn't render a proper response in JSON format might be wrong package name that you use. It is easy to overlook. Import are on top of a file, you look at your code and everything seems to be fine. Except response is still not in JSON format.
Consider this simple controller:
class RestJsonCatchController {
def grailsJson() {
render([first: 'foo', second: 5] as grails.converters.JSON)
}
def netSfJson() {
render([first: 'foo', second: 5] as net.sf.json.JSON)
}
}
And now, with finger crossed... We have a winner!
$ curl localhost:8080/example/restJsonCatch/grailsJson
{"first":"foo","second":5}
$ curl localhost:8080/example/restJsonCatch/netSfJson
{first=foo, second=5}
As you can see only grails.converters.JSON
converts your response to JSON format. There is no such converter for net.sf.json.JSON
, so Grails has no converter to apply and it renders Map normally.
Conclusion: always carefully look at your imports if you're working with JSON in Grails!
Edit: Burt suggested that this is a bug. I've submitted JIRA issue here: GRAILS-9622 render as class that is not a codec should throw exception