Spring Security Core Plugin无法在Grails 3.0.8上运行

时间:2015-10-12 12:53:41

标签: grails spring-security grails-3.0

我刚刚安装了Grails 3.0.8,创建了一个应用程序,并安装了Spring-Security-core插件,其版本为3.0.0.M1。然后,我按照插件tutorials的步骤进行操作。

但是,身份验证效果不佳。这意味着我无法访问顶级目录页面http://localhost:8080,始终会在页面上显示错误消息。错误消息是“抱歉,您无权查看此页面。”。

如何让插件运行良好?

以下步骤是我做的。

  1. 使用命令创建应用

    $ grails create-app testApp profile=web
    $ cd testApp
    
  2. 通过将插件添加到build.gradle

    来“安装”插件
    dependencies {
       …
       compile 'org.grails.plugins:spring-security-core:3.0.0.M1'
       …
    }
    
  3. 以交互模式运行编译命令。

        $ grails 
        grails> compile
        grails> exit
    
    1. 使用交互模式创建用户和角色域类。

      $ grails 
      grails> s2-quickstart common User Role
      
    2. 编辑grails-app / init / BootStrap.groovy以添加测试用户。

      import com.testapp.Role
      import com.testapp.User
      import com.testapp.UserRole
      class BootStrap {
      
         def init = { servletContext ->
      
            def adminRole = new Role('ROLE_ADMIN').save()
            def userRole = new Role('ROLE_USER').save()
      
            def testUser = new User('me', 'password').save()
      
            UserRole.create testUser, adminRole, true
      
         }
      }
      
    3. 以交互模式启动服务器。

      grails> run-app
      
    4. 导航至http://localhost:8080

    5. 在用户字段输入“me”,在密码字段输入“password”,然后单击“提交”。

      然后,消息显示在页面上

      Sorry, you're not authorized to view this page.
      
    6. 注意:

      application.groovy如下所示,但我没有做任何改动。

          // Added by the Spring Security Core plugin:
          grails.plugin.springsecurity.userLookup.userDomainClassName = 'common.User'
          grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'common.UserRole'
          grails.plugin.springsecurity.authority.className = 'common.Role'
          grails.plugin.springsecurity.controllerAnnotations.staticRules = [
              '/':                ['permitAll'],
              '/error':           ['permitAll'],
              '/index':           ['permitAll'],
              '/index.gsp':       ['permitAll'],
              '/shutdown':        ['permitAll'],
              '/assets/**':       ['permitAll'],
              '/**/js/**':        ['permitAll'],
              '/**/css/**':       ['permitAll'],
              '/**/images/**':    ['permitAll'],
              '/**/favicon.ico':  ['permitAll']
          ]
      

0 个答案:

没有答案