Grails从config.groovy中访问当前环境

时间:2013-08-15 18:27:55

标签: grails configuration

使用Grails OAuth插件需要在Config.groovy中提供绝对回调网址。但是,每个环境都有不同的serverURL。

有没有办法从Config.groovy内部获取当前环境,这是我想要做的一个例子:

def devServerUrl = 'http://dev.example.com'
def prodServerUrl = 'http://prod.example.com'
def currentServerUrl = grailsApplication.metadata.environment == 'development' ? devServerUrl : prodServerUrl;

environments {
    development {
        grails {
            serverURL = devServerUrl
        }
    }
    production {
        grails {
            serverURL = prodServerUrl
        }
    }
}

oauth {
    providers {
        runkeeper {
            api = RunKeeperApi
            key = 'key'
            secret = 'secret'
            callback = currentServerUrl + '/oauth/runkeeper/callback'
        }
    }
}

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:6)

试试这个:

def currentServerUrl = Environment.current.name == 'development' ? devServerUrl : prodServerUrl;

答案 1 :(得分:0)

我认为为每个环境设置不同的grails.serverURL然后执行以下操作会更简洁:

callback = "${grails.serverURL}/oauth/runkeeper/callback"