grails новый плагин безопасности, выдающий исключение нулевого указателя - PullRequest
0 голосов
/ 24 августа 2011

Я добавил следующий код в Bootstrap.groovy непосредственно после учебного пособия по плагину ядра безопасности, и я получаю исключение нулевого указателя из Bootstrap.groovy. Есть идеи, что не так?

Спасибо, Рэй

P.S. Я добавил классы User и Role, используя рекомендованную команду s2-quickstart рекомендуемого плагина, которая генерирует классы доменов User, Role и UserRole. Следующим шагом является настройка некоторых примеров пользователей в Bootstrap, который не работает.


Bootstrap.groovy:

       println "Creating roles user, leader, and admin"
       def userRole = Role.findByAuthority("ROLE_USER") ?: new Role(authority: "ROLE_USER").save()
       def leaderRole = Role.findByAuthority("ROLE_LEADER") ?: new Role(authority: "ROLE_LEADER").save()
       def adminRole = Role.findByAuthority("ROLE_ADMIN") ?: new Role(authority: "ROLE_ADMIN").save()

       println "Creating users called user, leader, and admin"
       def user = new User(username: "user", password: springSecurityService.encodePassword("abc"), enabled: true)
       def leader = new User(username: "leader", password: springSecurityService.encodePassword("abc"), enabled: true)
       def admin = new User(username: "admin", password: springSecurityService.encodePassword("abc"), enabled: true)

       println "Now joining users and their roles"
       UserRole.create(user, userRole)  <------------- FAILING HERE
       UserRole.create(leader, leaderRole)
       UserRole.create(admin, adminRole)
       println "All Done Creating users & roles"

Который производит следующее NullPointerException:

Creating roles user, leader, and admin

Creating users called user, leader, and admin

Now joining users and their roles

2011-08-23 14:34:10,762 [main] ERROR context.GrailsContextLoader  - Error executing bootstraps: null

java.lang.NullPointerException
    at $Proxy18.save(Unknown Source)
      **at momentum.UserRole.create(UserRole.groovy:32)**
    at momentum.UserRole.create(UserRole.groovy)
    at momentum.UserRole$create.call(Unknown Source)
    **at BootStrap$_closure1.doCall(BootStrap.groovy:168)**

Строки выглядят следующим образом:

BootStrap.groovy line 168: UserRole.create(user, userRole)

UserRole.groovy строка 32: new UserRole(user: user, role: role).save(flush: flush, insert: true)

1 Ответ

2 голосов
/ 24 августа 2011

Вы никогда не сохраняете новых пользователей.

user.save()
leader.save()
admin.save()
...