On 2011-02-01 11:29, Pawel Sztromwasser wrote:
> Hi,
> I am working on an external authentication plugin for BASE that will use
> an STS Web service to authenticate users. The plugin uses a bunch of
> external jars for WS communication, but with different versions then
> BASE. I was hoping for the same classloading mechanism as for regular
> plugins (separate classloaders), but it looks like external
> authentication plugins uses the default classloader of the webapp. Could
> this be changed? How else could I install my plugin, without messing
> with BASE's jars?

That part of BASE is not very "pluginified". I am not aware of any real 
case that uses external authentication so it would be very interesting 
to see if you succeed.

It's quite common that there are dependencies to different versions of 
3rd-party JAR files, but it usually works if the latest one is used. But 
of course, it may not work if the API has changed in an incompatible way.

If you can't get it to work by clever selection of JAR files, then you 
might have to modify the Application.getAuthenticator() method so that 
it uses a different class loader. It shouldn't be too difficult. It 
could for example pick up a JAR path from the base.config file and then 
use the net.sf.basedb.util.JarClassLoader.getInstance(path) to create a 
class loader. Dependencies need to be listed in the MANIFEST.MF in the 
same way as for plug-ins. There is a short notice about this at 

As always, patches are welcome :)


Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
basedb-devel mailing list

Reply via email to