Announce: Database Backed Storage Service

Wessel, Keith kwessel at illinois.edu
Tue Sep 24 11:58:59 EDT 2013


Hi, Paul,

We're going to try and get this storage service working against an Oracle database since that's our enterprise db around here. I've had our DBAs review the tables.sql, triggers.sql and indexes.sql to help me figure out all the needed modifications, and the only big issue for us is the database column named uid. Sadly, that's a reserved word in Oracle, and to be used, it has to be quoted whenever it appears in a query as well as keeping the case the same on it.

I can certainly go through the code and change it to another name. Wondered, though, if you might consider abstracting column names a level such that they're defined elsewhere as variables. That is, make the column corresponding with uid something that can be renamed by just changing one spot in the code or even at runtime.

If not, in any future versions of this code, you might want to consider a more descriptive column name than uid to maximize portability to other database types.

Thanks again,
Keith


From: users-bounces at shibboleth.net [mailto:users-bounces at shibboleth.net] On Behalf Of Paul Hethmon
Sent: Tuesday, August 27, 2013 9:30 AM
To: Shibboleth Users
Subject: Announce: Database Backed Storage Service

I finally got my database backed storage service packaged up for public release:

https://wiki.shibboleth.net/confluence/display/SHIB2/Database+Backed+Storage+Service

That page hopefully gives all the information needed to get it running. A few key points:

1. It uses Hibernate for the data access layer, but I have only connected it to MySQL.
2. The build script is Ant based which means dependencies will be a pain. I do have a goal to switch it to Maven, but don't hold your breath.
3. There is a binary distribution in the Subversion repository. Java 6.
4. I run a lot of copies of the IdP in my job that are logically distinct. You will see that the storage service requires a constructor argument to let it know which bucket to place the sessions. What you use does not matter. Only sessions with the same key are considered to be in the same logical group.
5. The code will hide ALL database failures. The idea was that a database failure would not prevent a user from logging in. It might require them to re-authenticate, but they will be able to login.

Please let me know what I forgot in the documentation, either on this list or direct is fine.

thanks,

Paul





More information about the users mailing list