X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FArgeoLoginContext.java;h=474cfcc0a1dadf2bfd546f2f35e59e7fd18ea216;hb=85ced0e58ded00f296948b6dff51f84994855080;hp=3a536672a02b437a0bafa200f3736e3febe21adf;hpb=6ddb7b6b224a00344a182761e42b2241a721224f;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/ArgeoLoginContext.java b/org.argeo.cms/src/org/argeo/cms/auth/ArgeoLoginContext.java index 3a536672a..474cfcc0a 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/ArgeoLoginContext.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/ArgeoLoginContext.java @@ -5,7 +5,10 @@ import javax.security.auth.callback.CallbackHandler; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; -/** Integrates JAAS with the Argeo platform */ +/** + * Integrates JAAS with the Argeo platform, by using the Argeo CMS bundle + * classloader as context classloader. + */ public class ArgeoLoginContext extends LoginContext { private static ThreadLocal currentContextClassLoader = new ThreadLocal() { @Override @@ -28,6 +31,15 @@ public class ArgeoLoginContext extends LoginContext { currentContextClassLoader.remove(); } + public ArgeoLoginContext(String name, Subject subject) + throws LoginException { + super(setContextClassLoaderForName(name), subject); + // reset current context classloader + Thread.currentThread().setContextClassLoader( + currentContextClassLoader.get()); + currentContextClassLoader.remove(); + } + /** * Set the context classloader *