需要将spring-security-ui集成到我的grails应用程序中的说明

时间:2013-05-21 21:27:44

标签: grails spring-security

首先,我已经开始浏览这些URL以将spring-security-ui安装到我的grails应用程序中。

Spring Security UI Plugin

和......

Customizing Grails Spring Security Plugin

我已安装spring-security-core并正在处理我的应用程序。我能够为gsp元素和控制器动作创建所有访问控制。那已经完成了。现在,我的要求是提供一个UI来管理用户,角色和访问,以便一些管理员可以轻松使用它。

注意:在集成spring-security-core时,我选择了doman类作为要生成的域的SecureUser,SecureRole和Requestmap(而不是默认的User,Role和Requestmap)。但是,是的,这是完美的。

我遵循的步骤:

  1. 添加了插件依赖 compile“:spring-security-ui:0.2”

  2. Ran命令: grails install-plugin spring-security-ui

  3. 这会返回一条成功消息,警告 install-plugin 命令已被取消,并将在以后的版本中被替换......我现在不用担心。

  4. 我做了一个 grails run-app ,我看到了一个巨大的堆栈跟踪(我会在问题的最后粘贴)。

  5. 所以,我的问题是:

    1. 在安装插件后看到成功消息后,我应该在应用程序中看到什么?是否不会创建任何控制器或域或视图来提供UI?

    2. 我缺少哪一步?直到第4步?我认为应该给我一个基本的界面/ UI来管理用户(除非我想像我上面给出的objectpartners URL一样进行自定义)。

    3. 此外,我在运行app时看到的错误是:

      | Loading Grails 2.2.1
      | Configuring classpath
      | Configuring classpath.
      | Environment set to development
      | Environment set to development.
      | Environment set to development..
      | Environment set to development...
      | Environment set to development....
      | Environment set to development.....
      | Packaging Grails application
      | Packaging Grails application.
      | Packaging Grails application..
      | Packaging Grails application...
      | Packaging Grails application....
      | Compiling 1 source files
      | Compiling 1 source files.
      | Compiling 1 source files..
      | Compiling 1 source files...
      | Compiling 1 source files....
      | Compiling 1 source files.....
      | Compiling 1 source files.....
      2013-05-21 15:34:27,535 [main] WARN  webxml.WebxmlGrailsPlugin  - Did not find application config file: WebXmlConfig
      2013-05-21 15:34:28,130 [main] WARN  webxml.WebxmlGrailsPlugin  - Did not find application config file: WebXmlConfig
      | Running Grails application
      
      Configuring Spring Security UI ...
      ... finished configuring Spring Security UI
      
      2013-05-21 15:34:32,508 [localhost-startStop-1] WARN  util.GrailsUtil  - [DEPRECATED] Method ConfigurationHolder.getConfig() is deprecated and will be removed in a future version of Grails.
      
      Configuring Spring Security Core ...
      ... finished configuring Spring Security Core
      
      2013-05-21 15:34:34,080 [localhost-startStop-1] WARN  config.ConfigurationFactory  - No configuration found. Configuring ehcache from ehcache-failsafe.xml  found in the classpath: jar:file:/C:/Users/ramarajuv/.grails/ivy-cache/net.sf.ehcache/ehcache-core/jars/ehcache-core-2.4.6.jar!/ehcache-failsafe.xml
      2013-05-21 15:34:35,633 [localhost-startStop-1] WARN  util.GrailsUtil  - [DEPRECATED] Method ApplicationHolder.getApplication() is deprecated and will be removed in a future version of Grails.
      2013-05-21 15:34:37,391 [localhost-startStop-1] WARN  servlet.DefaultGrailsApplicationAttributes  - ApplicationContext not found in org.codehaus.groovy.grails.APPLICATION_CONTEXT attribute of servlet context.
      2013-05-21 15:34:38,402 [localhost-startStop-1] WARN  module.ModuleDeclarationsFactory  - 'grails.resources.modules' in config does not define any modules
      2013-05-21 15:34:38,571 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
      java.lang.NullPointerException: Cannot get property 'name' on null object
          at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56)
          at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169)
          at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:601)
          at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
          at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:272)
          at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:124)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:601)
          at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
          at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:272)
          at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
          at org.grails.plugin.resource.ResourceProcessor.updateDependencyOrder(ResourceProcessor.groovy:131)
          at org.grails.plugin.resource.ResourceProcessor.loadModules(ResourceProcessor.groovy:804)
          at org.grails.plugin.resource.ResourceProcessor.this$2$loadModules(ResourceProcessor.groovy)
          at org.grails.plugin.resource.ResourceProcessor$this$2$loadModules.callCurrent(Unknown Source)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
          at org.grails.plugin.resource.ResourceProcessor.reloadAll(ResourceProcessor.groovy:1075)
          at org.grails.plugin.resource.ResourceProcessor$reloadAll.call(Unknown Source)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
          at ResourcesGrailsPlugin$_closure3.doCall(ResourcesGrailsPlugin.groovy:172)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:601)
          at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
          at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
          at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082)
          at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906)
          at groovy.lang.Closure.call(Closure.java:412)
          at ResourcesGrailsPlugin$_closure3.call(ResourcesGrailsPlugin.groovy)
          at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.doWithDynamicMethods(DefaultGrailsPlugin.java:703)
          at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.doDynamicMethods(DefaultGrailsPluginManager.java:741)
          at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:174)
          at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:127)
          at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:121)
          at org.codehaus.groovy.grails.web.context.GrailsContextLoader.initWebApplicationContext(GrailsContextLoader.java:107)
          at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          at java.lang.Thread.run(Thread.java:722)
      2013-05-21 15:34:38,575 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
      java.lang.NullPointerException: Cannot get property 'name' on null object
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117)
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:124)
          at org.grails.plugin.resource.ResourceProcessor.updateDependencyOrder(ResourceProcessor.groovy:131)
          at org.grails.plugin.resource.ResourceProcessor.loadModules(ResourceProcessor.groovy:804)
          at org.grails.plugin.resource.ResourceProcessor.reloadAll(ResourceProcessor.groovy:1075)
          at ResourcesGrailsPlugin$_closure3.doCall(ResourcesGrailsPlugin.groovy:172)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          at java.lang.Thread.run(Thread.java:722)
      2013-05-21 15:34:38,576 [localhost-startStop-1] ERROR resource.ResourceProcessor  - Unable to load resources
      java.lang.NullPointerException: Cannot get property 'name' on null object
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117)
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:124)
          at org.grails.plugin.resource.ResourceProcessor.updateDependencyOrder(ResourceProcessor.groovy:131)
          at org.grails.plugin.resource.ResourceProcessor.loadModules(ResourceProcessor.groovy:804)
          at org.grails.plugin.resource.ResourceProcessor.reloadAll(ResourceProcessor.groovy:1075)
          at ResourcesGrailsPlugin$_closure3.doCall(ResourcesGrailsPlugin.groovy:172)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          at java.lang.Thread.run(Thread.java:722)
      2013-05-21 15:34:40,084 [localhost-startStop-1] WARN  util.GrailsUtil  - [DEPRECATED] Method ConfigurationHolder.getConfig() is deprecated and will be removed in a future version of Grails.
      2013-05-21 15:34:40,092 [localhost-startStop-1] WARN  util.GrailsUtil  - [DEPRECATED] Method ApplicationHolder.getApplication() is deprecated and will be removed in a future version of Grails.
      2013-05-21 15:34:40,103 [localhost-startStop-1] WARN  util.GrailsUtil  - [DEPRECATED] Method ApplicationHolder.getApplication() is deprecated and will be removed in a future version of Grails.
      2013-05-21 15:34:40,186 [localhost-startStop-1] WARN  util.GrailsUtil  - [DEPRECATED] Method ConfigurationHolder.getConfig() is deprecated and will be removed in a future version of Grails.
      2013-05-21 15:34:40,191 [Thread-10] ERROR plugins.DefaultGrailsPlugin  - Cannot generate controller logic for scaffolded class true. It is not a domain class!
      2013-05-21 15:34:40,670 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
      java.lang.NullPointerException: Cannot get property 'name' on null object
          at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56)
          at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:169)
          at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:227)
          at org.grails.plugin.resource.ResourceProcessor$_updateDependencyOrder_closure4.doCall(ResourceProcessor.groovy:117)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      ...
      ...
      ...
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          at java.lang.Thread.run(Thread.java:722)
      2013-05-21 15:34:40,847 [Thread-10] ERROR StackTrace  - Full Stack Trace:
      org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
          at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:212)
          at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
          at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.autowireBeanInAutowireByName(ReloadAwareAutowireCapableBeanFactory.java:201)
          at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.populateBeanInAutowireByName(ReloadAwareAutowireCapableBeanFactory.java:193)
          at org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory.autowireBeanProperties(ReloadAwareAutowireCapableBeanFactory.java:181)
          at org.springframework.beans.factory.config.AutowireCapableBeanFactory$autowireBeanProperties.call(Unknown Source)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
          at org.springframework.beans.factory.config.AutowireCapableBeanFactory$autowireBeanProperties.call(Unknown Source)
          at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin.configureScaffoldingController(ScaffoldingGrailsPlugin.groovy:116)
          at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin$configureScaffoldingController.callStatic(Unknown Source)
          at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin.configureScaffolding(ScaffoldingGrailsPlugin.groovy:90)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:601)
          at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
          at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
          at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082)
          at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
          at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:727)
          at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
          at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1147)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
          at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906)
          at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
          at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
          at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
          at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin$_closure2_closure10.doCall(ScaffoldingGrailsPlugin.groovy:77)
          at org.codehaus.groovy.grails.plugins.scaffolding.ScaffoldingGrailsPlugin$_closure2_closure10.doCall(ScaffoldingGrailsPlugin.groovy)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:601)
          at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
          at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
          at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1082)
          at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1106)
          at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:906)
          at groovy.lang.Closure.call(Closure.java:412)
          at groovy.lang.Closure.call(Closure.java:406)
          at groovy.lang.Closure.run(Closure.java:490)
          at java.lang.Thread.run(Thread.java:722)
      2013-05-21 15:34:40,849 [Thread-10] ERROR StackTrace  - Full Stack Trace:
      org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
          at java.lang.Thread.run(Thread.java:722)
      2013-05-21 15:34:40,849 [Thread-10] ERROR plugins.DefaultGrailsPlugin  - Error configuration scaffolding: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
      org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'instanceControllersApi': Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
          at java.lang.Thread.run(Thread.java:722)
      

1 个答案:

答案 0 :(得分:1)

您安装了所有插件spring-security-ui取决于吗?它们不会自动安装,如documentation中所述。您可能会错过注册某些资源jquery需要的jquery-uifamfamfamspring-security-ui插件,这些插件可以解释您所看到的堆栈跟踪。