Replace JPAStorageService with JDBCStorageService for upgrade IdP to v5.0.0

板東 孝文 bandou.takafumi at tokushima-u.ac.jp
Wed Feb 28 08:34:57 UTC 2024


Thank you all.

You're right, there was a problem with the table configuration.
I changed definition of PRIMARY KEY, the problem was solved.
It was needed "varbinary", not "varchar".

Thank you so much!
-----------------------------
Takafumi Bando

Sent: Wednesday, February 28, 2024 11:42 AM
To: users at shibboleth.net
Subject: Replace JPAStorageService with JDBCStorageService for upgrade IdP to v5.0.0

Hello,

I'm trying to replace JPAStorageService with JDBCStorageService prior to upgrading the IdP.
I refer to the following web page(https://shibboleth.atlassian.net/wiki/spaces/IDPPLUGINS/pages/2989096970/JDBCStorageService).

But, when I restarted tomcat, I got the following message.

catalina.out
======================================================================
2024-02-28 10:58:50.981 [ERROR] : org.springframework.web.context.ContextLoader: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'JDBCStorageService' defined in file [/opt/shibboleth-idp/conf/global.xml]: 
Invocation of init method failed; nested exception is net.shibboleth.utilities.java.support.component.ComponentInitializationException: 
net.shibboleth.utilities.java.support.component.ComponentInitializationException: Key Column is Case Insensitive ======================================================================

Here are the settings I changed and my environment.

 JVM Version:           17.0.9+9-LTS
 Server version name:   Apache Tomcat/10.1.16
 shibboleth-identity-provider-4.3.1

conf/global.xml
======================================================================
<bean id="JDBCStorageService" parent="shibboleth.JDBCStorageService"
          p:cleanupInterval="%{idp.storage.cleanupInterval:PT10M}"
          p:dataSource-ref="MyDataSource"
          p:transactionIsolation="4"
          p:retryableErrors="40001"
    />
======================================================================

conf/idp.properties.xml
======================================================================
#idp.consent.StorageService = shibboleth.JPAStorageService idp.consent.StorageService = JDBCStorageService ======================================================================

Of course, I installed the latest plugin version supported on my IdP version with.

-----------------------------------------------------------------------
# sh /opt/shibboleth-idp/bin/plugin.sh -l

Plugin: net.shibboleth.plugin.storage.jdbc      Current Version: 1.0.4
-----------------------------------------------------------------------


I suspected bean id "JDBCStorageService" duplication, so I unziped idp.war and checked the contents of "WEB-INF/lib/*.jar", but didn't be there.
I don't find the right configuration yet.

Many thanks by advance for your time and help, 

Best regards,

----------------------------------------------------------------
Tokushima University
Takafumi Bando



More information about the users mailing list