2013-08-15 4 views
3

Использование плагина Grails OAuth требует, чтобы в Config.groovy был указан абсолютный URL-адрес обратного вызова. Однако у меня разные серверы для каждой среды.Доступ к текущей среде Grails изнутри config.groovy

Есть ли способ, чтобы получить текущую среду внутри 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' 
     } 
    } 
} 

Любые идеи? Благодаря!

+0

Я думаю, что Environment.current работает в Config.groovy –

ответ

6

Попробуйте это:

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

Работала красиво , благодаря! Мне также пришлось импортировать grails.util.Environment в верхней части Config.groovy. – Keeth

+0

Или используйте встроенные константы: Environment.current == Environment.DEVELOPMENT –

0

Я думаю, что это уборщик, чтобы установить различные grails.serverURL для каждой среды, а затем сделать:

callback = "${grails.serverURL}/oauth/runkeeper/callback" 
Смежные вопросы