private void loadDefaultCallbackHandler() throws LoginException { // get the default handler class try { final ClassLoader finalLoader = contextClassLoader; this.callbackHandler = java.security.AccessController.doPrivileged( new java.security.PrivilegedExceptionAction<CallbackHandler>() { public CallbackHandler run() throws Exception { String defaultHandler = java.security.Security.getProperty(DEFAULT_HANDLER); if (defaultHandler == null || defaultHandler.length() == 0) return null; Class<? extends CallbackHandler> c = Class.forName(defaultHandler, true, finalLoader) .asSubclass(CallbackHandler.class); return c.newInstance(); } }); } catch (java.security.PrivilegedActionException pae) { throw new LoginException(pae.getException().toString()); } // secure it with the caller's ACC if (this.callbackHandler != null && creatorAcc == null) { this.callbackHandler = new SecureCallbackHandler( java.security.AccessController.getContext(), this.callbackHandler); } }
/** * Invokes the login, commit, and logout methods from a LoginModule inside a doPrivileged block * restricted by creatorAcc (may be null). * * <p>This version is called if the caller did not instantiate the LoginContext with a * Configuration object. */ private void invokePriv(final String methodName) throws LoginException { try { java.security.AccessController.doPrivileged( new java.security.PrivilegedExceptionAction<Void>() { public Void run() throws LoginException { invoke(methodName); return null; } }, creatorAcc); } catch (java.security.PrivilegedActionException pae) { throw (LoginException) pae.getException(); } }
public void handle(final Callback[] callbacks) throws java.io.IOException, UnsupportedCallbackException { try { java.security.AccessController.doPrivileged( new java.security.PrivilegedExceptionAction<Void>() { public Void run() throws java.io.IOException, UnsupportedCallbackException { ch.handle(callbacks); return null; } }, acc); } catch (java.security.PrivilegedActionException pae) { if (pae.getException() instanceof java.io.IOException) { throw (java.io.IOException) pae.getException(); } else { throw (UnsupportedCallbackException) pae.getException(); } } }