Groovy on Grails Q&A

Spread the love

Indice

  • Problems copying method. Incompatible JVM?
  • casServerUrlPrefix cannot be null
  • Aggancio al CAS non riuscito
  • ERROR pool.ConnectionPool

Vari errori che mi sono capitati

Problems copying method. Incompatible JVM?

Si manifesta quando si vuole eseguire l’applicazione da riga di comando con

$ grails run-app

Ho trovato che il problema è la versione di Spring, avevo la 1.2.0 e in StackOverflow consigliano la 1.2.4:

$ wget https://repo.spring.io/release/org/springframework/springloaded/1.2.4.RELEASE/springloaded-1.2.4.RELEASE.jar -O springloaded-1.2.1.RELEASE.jar

casServerUrlPrefix cannot be null

Devo proteggere la mia applicazione con accesso di login e mi aggancio per questo ad un server CAS. La configurazione che ho fatto (minimale) è di inserire nel file BuildConfig.groovy, nella sezione plugins la riga

compile ":spring-security-cas:2.0.1"

Eseguendo il build:

$ grails s2-quickstart test1 Utente Ruolo Requestmap

SI verifica un errore (e Tomcat non parte)

Exception starting filter CAS Single Sign Out Filter Message: casServerUrlPrefix cannot be null.

Ora la configurazione dei parametri CAS era stata effetuata regolarmente nel file Config.groovy (tutti questi file si trovano nella cartella grails-app/conf del progetto Grails):

environments {
...
    custom {
        grails.plugin.springsecurity.cas.serverUrlPrefix="https://cas.remotesite.com/cas"
        grails.plugin.springsecurity.cas.active = true
        grails.plugin.springsecurity.cas.loginUri = "/login"
        grails.plugin.springsecurity.cas.serverUrlPrefix = "https://cas.remotesite.come/cas"
        grails.plugin.springsecurity.logout.afterLogoutUrl = "https://splashdown.remotesite.com/logout.php"
    }
...
}

E parimenti è stata fatta la configurazione del core di Spring che ometto.

Per farla breve l’errore era una ulteriore configurazione da aggiungere nel file BuildConfig.groovy: nella sezione dependencies

        compile "org.jasig.cas.client:cas-client-core:3.3.3", {
            excludes 'commons-codec', 'commons-logging', 'junit', 'log4j', 'opensaml', 'servlet-api', 'spring-beans',
                    'spring-context', 'spring-core', 'spring-test', 'xmlsec' }

Riferimenti: https://github.com/grails-plugins/grails-spring-security-cas/issues/9

Aggancio al CAS non riuscito

In questa situazione CAS viene invocato richiama l’host di ritorno passando il token di sessione, ma il client lato applicazione lo ignora e fa riferimento ad un suo db locale, un database H2.

L’url del db è scritto in DataSource.groovy ed è jdbc:h2:prodDb

ERROR pool.ConnectionPool

Mancano i driver che vanno aggiunti al file conf/BuildConfig.groovy:

    dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
        runtime 'mysql:mysql-connector-java:5.1.27'
        // runtime 'org.postgresql:postgresql:9.3-1100-jdbc41'
        test "org.grails:grails-datastore-test-support:1.0-grails-2.3"
    }

La riga relativa a mysql di default è commentata: decommentarla. Eventualmente aggiungere il parametro di Oracle se invece si usa Oracle: si devono aggiungere i jar di odbc e ora sotto lib

marcob@jsbach[11:35:58]:betablog$ ll lib/
 totale 3140
 drwxrwxr-x  2 marcob marcob    4096 ago 26 18:07 ./
 drwxrwxr-x 15 marcob marcob    4096 ago 26 18:05 ../
 -rw-rw-r--  1 marcob marcob 1555682 ago  5 16:47 ojdbc14.jar
 -rw-rw-r--  1 marcob marcob 1646178 ago  5 16:47 orai18n.jar

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.