anyone trying out grails 7 having issues with valu...
# questions
d
anyone trying out grails 7 having issues with values from application.yml and/or application.groovy being consistently picked up? we are randomly seeing our JWT secret is not being picked up
g
I’m running into this and have been working with @jdaugherty to try to run down why. Do you have a plugin project associated with your root project or can you post your application.groovy file?
d
@gsandrew yea let me review ours and post it here today
Copy code
// Set secrets
def jwt_secret = System.getenv("WT_JWT_SECRET")

grails.plugin.springsecurity.filterChain.chainMap = [
    [pattern: '/assets/**',      filters: 'none'],
    [pattern: '/**/js/**',       filters: 'none'],
    [pattern: '/**/css/**',      filters: 'none'],
    [pattern: '/**/images/**',   filters: 'none'],
    [pattern: '/**/favicon.ico', filters: 'none'],
    [   // Stateless chain (REST)
        pattern: '/api/**',
        filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter,-casAuthenticationFilter'
    ],
    [   // Traditional chain (web)
        pattern: '/**',
        filters: 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter'
    ]
]

grails.plugin.springsecurity.rest.token.storage.jwt.secret = jwt_secret

grails.plugin.springsecurity.failureHandler.defaultFailureUrl = '/errors/authfail?login_error=1'
grails.plugin.springsecurity.securityConfigType = "Annotation"
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
]
grails.plugin.springsecurity.userLookup.userDomainClassName = '*********'

grails.plugin.springsecurity.xface.useRoleGroups = false
grails.plugin.springsecurity.xface.authority.className = '*********'
grails.plugin.springsecurity.xface.authority.nameField = '*********'
grails.plugin.springsecurity.xface.authority.groupAuthorityNameField = null
grails.plugin.springsecurity.xface.userLookup.authoritiesPropertyName = '*********'
grails.plugin.springsecurity.xface.userLookup.userDomainClassName = '*********'
grails.plugin.springsecurity.xface.userLookup.authorityJoinClassName = '*********'
grails.plugin.springsecurity.xface.userLookup.usernamePropertyName = '*********'
grails.plugin.springsecurity.xface.userLookup.passwordPropertyName = '*********'
grails.plugin.springsecurity.xface.userLookup.enabledPropertyName = 'enabled'
grails.plugin.springsecurity.xface.userLookup.accountExpiredPropertyName = 'accountExpired'
grails.plugin.springsecurity.xface.userLookup.accountLockedPropertyName = 'accountLocked'
grails.plugin.springsecurity.xface.userLookup.passwordExpiredPropertyName = 'passwordExpired'

usermanager {
    filterProcessesUrl = "/j_spring_cas_security_check"
    apiUrl = "/api"
}

environments {
    development {
        usermanager.serverUrlPrefix = "*********"
        grails.plugin.springsecurity.cas.serverUrlPrefix = "*********"
        grails.plugin.springsecurity.logout.afterLogoutUrl = "*********"
    }
    production {
        usermanager.serverUrlPrefix = "*********"
        // Need to override default afterLogoutUrl for RequestAwareUrlLogoutSuccessHandler to work
        grails.plugin.springsecurity.logout.afterLogoutUrl = "*********"
    }
    demo {
        usermanager.serverUrlPrefix = "*********"
        // Need to override default afterLogoutUrl for RequestAwareUrlLogoutSuccessHandler to work
        grails.plugin.springsecurity.logout.afterLogoutUrl = "*********"
    }
    preview {
        // user manager
        usermanager.serverUrlPrefix = "*********"
        // Need to override default afterLogoutUrl for RequestAwareUrlLogoutSuccessHandler to work
        grails.plugin.springsecurity.logout.afterLogoutUrl = "*********"
    }
}

grails.plugins.imports.loggingProvider = 'mem'
grails.plugins.imports.confirmationView = 'complete'

grails {
    plugin {
        auditLog {
            auditDomainClassName = 'com.cmt.warranty.domain.AuditLog'
            logFullClassName = false
            verbose = false
            verboseEvents = [grails.plugins.orm.auditable.AuditEventType.UPDATE]
            logOnlyIds = true
            verbose = false
            usePersistentDirtyPropertyValues = false
        }
    }
}

// SendGrid Config
grails {
    mail {
        host = "*********"
        port = 587
        username = "*********"
        def send_grid_password = System.getenv("SEND_GRID_PASSWORD")
        password = send_grid_password
        props = ["mail.smtp.starttls.enable":"true",
                 "mail.smtp.port":"587"]
    }
}

// Used in the absence of explicit values when sending mail
grails.mail.default.from = "*********"
dummy.implant.card.address = "*********"

asynchronous.mail.useFlushOnSave=true

environments {
    dbm-gorm-diff {
        asynchronous.mail.disable=true
    }
}

// Run migrations on startup
grails.plugin.databasemigration.updateOnStart = true
grails.plugin.databasemigration.excludeObjects = "acl_class, acl_entry, acl_object_identity, acl_sid"
environments {
    development {
        grails.plugin.databasemigration.updateOnStart = false
        grails.plugin.databasemigration.backupBeforeMigrating = false
    }
    devmysql {
        // Custom option we've added
        grails.plugin.databasemigration.backupBeforeMigrating = false
    }
    dbm-gorm-diff {
        // Custom option we've added
        grails.plugin.databasemigration.backupBeforeMigrating = false
        grails.plugin.databasemigration.updateOnStart = false
    }
    test {
        grails.plugin.databasemigration.updateOnStart = false
    }
    demo {
        grails.plugin.databasemigration.backupBeforeMigrating = false
        grails.plugin.databasemigration.updateOnStart = true
    }
    qa {
        grails.plugin.databasemigration.backupBeforeMigrating = false
        grails.plugin.databasemigration.updateOnStart = false
    }
    pentest {
        grails.plugin.databasemigration.backupBeforeMigrating = false
        grails.plugin.databasemigration.updateOnStart = true
    }
    preview {
        grails.plugin.databasemigration.backupBeforeMigrating = false
        grails.plugin.databasemigration.updateOnStart = false
    }
    production {
        grails.plugin.databasemigration.backupBeforeMigrating = false
        grails.plugin.databasemigration.updateOnStart = true
    }
}

multitenant.database.config.location = 'dataSources.yml'
environments {
    devmysql {
        multitenant.database.config.location = '*********'
    }
    qa {
        multitenant.database.config.location = 'file:*********'
    }
    pentest {
        multitenant.database.config.location = 'file:*********'
    }
    demo {
        multitenant.database.config.location = 'file:*********'
    }
    production {
        multitenant.database.config.location = 'file:*********'
    }
    preview {
        multitenant.database.config.location = 'file:*********'
    }
}