小编Ber*_*ard的帖子

grails spring安全角色和组

我已将弹簧安全配置为与群组配合使用.

我用这个scipt来创建域类:

grails s2-quickstart com.yourapp User Role --groupClassName=RoleGroup
Run Code Online (Sandbox Code Playgroud)

我假设一个用户可以有很多组,其中一个组可以有很多角色

这是User类中生成的方法的样子:

Set<RoleGroup> getAuthorities() {
    UserRoleGroup.findAllByUser(this).collect { it.roleGroup }
}
Run Code Online (Sandbox Code Playgroud)

但是现在我看到脚本还创建了一个名为UserRole的类,它是User和Role之间的关联.那么用户也可以直接拥有多个角色?

我试过了,它保存在数据库中.我修改了这样的方法:

def getAuthorities() {
    def authorities = UserRoleGroup.findAllByUser(this).collect { it.roleGroup }

    authorities.addAll(UserRole.findAllByUser(this).collect { it.role })
    return authorities
}
Run Code Online (Sandbox Code Playgroud)

现在,当我在User < - > Role Association中创建数据库中的条目时.我不能再登录了.我得到spring security的默认消息,基本上说没有找到凭据.

当我手动删除条目时,我可以再次登录.我认为这是因为该方法只返回RoleGroup对象.

我的问题是:

a)我可以在配置组时直接分配角色

b)如果不是,为什么脚本会创建这个类

c)如果是,我该怎么做?

grails spring-security

10
推荐指数
1
解决办法
1045
查看次数

Tomcat:冲突的模块版本.模块[groovy-all在版本2.3.7中加载,您正在尝试加载版本2.4.3

我有一个jenkins构建服务器来构建我的grails项目.我最近更新了grails 2.5.0和groovy comiler 2.4.3

到现在为止还挺好.詹金斯正在再次建立战争.

但是当我在我的tomcat上部署战争时,我得到错误:

log4j:ERROR Error initializing log4j: null
java.lang.ExceptionInInitializerError
        at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:61)
        at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
        at org.codehaus.groovy.grails.commons.AbstractGrailsApplication.<init>(AbstractGrailsApplication.java:45)
        at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.<init>(DefaultGrailsApplication.java:95)
        at org.codehaus.groovy.grails.commons.DefaultGrailsApplication.<init>(DefaultGrailsApplication.java:91)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
        at java.lang.Class.newInstance(Class.java:379)
        at org.codehaus.groovy.grails.plugins.log4j.web.util.Log4jConfigListener.createGrailsApplication(Log4jConfigListener.java:54)
        at org.codehaus.groovy.grails.plugins.log4j.web.util.Log4jConfigListener.contextInitialized(Log4jConfigListener.java:42)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1073)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.3.7 and you are trying …
Run Code Online (Sandbox Code Playgroud)

grails groovy tomcat tomcat7 jenkins

7
推荐指数
1
解决办法
9067
查看次数

标签 统计

grails ×2

groovy ×1

jenkins ×1

spring-security ×1

tomcat ×1

tomcat7 ×1