Difference between revisions of "Grails Plugins"

From Blue-IT.org Wiki

 
(30 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
All plugins can be downloaded at: [http://grails.org/plugins http://grails.org/plugins]
 
All plugins can be downloaded at: [http://grails.org/plugins http://grails.org/plugins]
  
== Multi Tenant ==
+
== Spring Security ==
An introduction on the concept of multitenant can be found at:
+
* [http://www.grails.org/plugin/spring-security-core http://www.grails.org/plugin/spring-security-core]
* [http://en.wikipedia.org/wiki/Multitenancy http://en.wikipedia.org/wiki/Multitenancy]
+
* [http://grails.org/dist/screencasts/screencast10.mov http://grails.org/dist/screencasts/screencast10.mov]
* [http://www.itwissen.info/definition/lexikon/Multi-Tenancy-Architektur-multitenancy-architecture.html It-Wissen Multitenancy]
 
  
Documentation
+
=== s2-quickstart ===
* [http://multi-tenant.github.com/grails-multi-tenant-core/guide/ http://multi-tenant.github.com/grails-multi-tenant-core/guide/]
+
 
 +
grails s2quickstart  your.package SecUser SecRole
 +
 
 +
creates two domain classes and corresponding controllers.
 +
 
 +
=== Integrade domain classes ===
 +
 
 +
class MyDomainClass '''extends SecUser''' {
 +
 +
    [...]
 +
}
 +
 
 +
=== BootStrap.groovy ===
 +
 
 +
class BootStrap {
 +
 +
  '''def dpringSecurityService'''
 +
 +
  def init = {
 +
   
 +
      '''def userRole = SecRole.findByAuthority("ROLE_USER") ?: new SecRole(authority: "ROLE_USER").save()'''
 +
      '''def adminRole = SecRole.findByAuthority("ROLE_ADMIN") ?: new SecRole(authority: "ROLE_ADMIN").save()'''
 +
      [...]
 +
  }
 +
 
 +
  def users = User.list() ?: []
 +
  if (!users) {
 +
      def user = new User(
 +
          [...]
 +
          '''password: springSecurityService.enodePassord("myPass")'''
 +
          '''enabled = true'''
 +
      )
 +
  }
 +
 +
  '''SecUserSecRole.create user, userRole'''
 +
 
 +
}
 +
 
 +
=== Annotate the controller actions ===
 +
 +
'''import grails.plugins.springsecurity.Secured'''
 +
 +
class DomainClassController {
 +
 +
    '''@Secured(['ROLE_USER'])'''
 +
    def myAction = {
 +
        [...]
 +
    }
 +
 +
}
 +
 
 +
=== Create a currentUser() method in the controller ===
 +
 
 +
class DomainClassController {
 +
 +
    @Secured(['ROLE_USER'])
 +
    def myAction = {
 +
        def currentUser = currentuser();
 +
        [...]
 +
 +
    }
 +
 
 +
        [...]
 +
    '''private currentUser()''' {
 +
        '''User.get(springSecurityService.principal.id)'''
 +
 
 +
[[Category:Java, Groovy and Grails]]

Latest revision as of 19:50, 8 January 2012

All plugins can be downloaded at: http://grails.org/plugins

Spring Security

s2-quickstart

grails s2quickstart  your.package SecUser SecRole

creates two domain classes and corresponding controllers.

Integrade domain classes

class MyDomainClass extends SecUser {

    [...]
}

BootStrap.groovy

class BootStrap {

  def dpringSecurityService

  def init = {
    
      def userRole = SecRole.findByAuthority("ROLE_USER") ?: new SecRole(authority: "ROLE_USER").save()
      def adminRole = SecRole.findByAuthority("ROLE_ADMIN") ?: new SecRole(authority: "ROLE_ADMIN").save()
      [...]
  }
  
  def users = User.list() ?: []
  if (!users) {
     def user = new User(
         [...]
         password: springSecurityService.enodePassord("myPass")
         enabled = true
     )
  }

  SecUserSecRole.create user, userRole
 
}

Annotate the controller actions

import grails.plugins.springsecurity.Secured

class DomainClassController {

   @Secured(['ROLE_USER'])
   def myAction = {
       [...]
   }

}

Create a currentUser() method in the controller

class DomainClassController {

   @Secured(['ROLE_USER'])
   def myAction = {
       def currentUser = currentuser();
       [...]

   } 
  
       [...]
   private currentUser() {
        User.get(springSecurityService.principal.id)