High Quality JMS Messaging.

Introduction

The JDBC Authentication Swiftlet is a replacement of the standard Authentication Swiftlet and utilizes a database server to authenticate users and to authorize access to SwiftMQ resources via JDBC.

All known authentication entities such as users, groups, grants, and resource limit groups are used from the JDBC Authentication Swiftlet as well. For an introduction please have a look at the standard Authentication Swiftlet's documentation.

These entities are defined as a SQL table schema which is part of the JDBC Authentication Swiftlet distribution and which must be installed first. Default users and groups are created during the schema installation. The entities are the same as with the standard Authentication Swiftlet (e.g. user "anonymous", group "public" etc).

The access from a SwiftMQ router to the database server takes place via JDBC. After the SQL schema has been installed and necessary entries (users etc) have been created, the JDBC Authentication Swiftlet must be configured concerning JDBC driver classname, JDBC URL, database user and password. This user has to have the permissions to read the tables. The JDBC Authentication Swiftlet does not write to the database server. Thereafter, the SwiftMQ router can be started and will use the configured database server for authentication. It is possible that different SwiftMQ routers use a single database server concurrently.

The JDBC Authentication Swiftlet uses a single JDBC connection. To speed up authentication, caching can be enabled. All fetched authentication objects (users, groups, resource limit groups) are stored in memory then and will be used during further authentication processing. They expire after a configurable time, will be removed from the cache and fetched from the database server again the next time they are used. Therefore, database changes are visible in SwiftMQ after the particular objects have been expired in the cache and are being reloaded from the database server. Caching is enabled by default and uses an expiration of 5 minutes.