Grails Spring Security SecUser - PullRequest
       0

Grails Spring Security SecUser

0 голосов
/ 26 января 2012

Могу ли я создать два разных типа секьюзеров, таких как секьюсер и эндусер, SecRole и EndRole где мой администратор моей больницы, а также врачи и эндюсер будут отданы моему секретору и секретору, конечный пользователь моего проекта больницы будет отдан

У меня есть таблицы secuser и secrole, но когда я создал enduser и endrole с помощью команды s2-quickstart, я смог получить классы домена, и я не переопределил свои контроллеры входа и выхода, теперь не могу создать объект enduser endrole объект в моем ботинке

class BootStrap {
   def springSecurityService
   def init = { servletContext ->

      /*
      def userRole = EndRole.findByAuthority('ROLE_USER') ?: new EndRole(authority: 'ROLE_USER').save(failOnError: true)

      def endadminUser = EndUser.findByUsername('endadmin') ?: new EndUser(
         username: 'endadmin',
         password:'endadmin',enabled: true).save(failOnError: true)

      if (!endadminUser.authorities.contains(userRole)) {
         EndUserEndRole.create endadminUser, userRole
      }
      */

      def x= new EndRole(authority: 'ROLE_USER')
      println("    new fresh      "+x.authority)
   }
   def destroy = {
   }
}

1 Ответ

1 голос
/ 26 января 2012

Вы можете иметь столько типов пользователей, сколько хотите, но для поддержки этого вам понадобится пользовательский UserDetailsService.Это обычное дело, поэтому в документации есть раздел;см. раздел «11 Custom UserDetailsService» в http://grails -plugins.github.com / grails-spring-security-core / docs / manual /

Я не уверен, почему вы думаетеВам нужно больше, чем один класс ролей.Просто создайте экземпляр SecRole с другим именем роли для администраторов и врачей, например, new SecRole(authority: 'ROLE_DOCTOR').save(), new SecRole(authority: 'ROLE_ADMIN').save().

Возможно, вам совсем не нужны разные пользовательские классы (по крайней мере, для безопасности)- вам может потребоваться поддержка различных атрибутов из соображений безопасности).Просто создайте SecUser экземпляры и предоставьте им любые роли (с EndUserEndRole.create), в которых они нуждаются, т.е. ROLE_DOCTOR или ROLE_ADMIN.

Сделайте себе одолжение и прочтите документацию по плагину, а также документацию Spring Security по адресу http://static.springsource.org/spring-security/site/docs/3.0.x/reference/springsecurity.html - этот материал слишком важен для реализации, если вы не знаете, как обеспечить безопасность веб-сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...