- Problems copying method. Incompatible JVM?
- casServerUrlPrefix cannot be null
- Aggancio al CAS non riuscito
- ERROR pool.ConnectionPool
Vari errori che mi sono capitati
Sommario
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
Commenti recenti