AuthProvider aprov = Security.getProvider("SunPKCS11-NSS-FIPS"); aprov.login(subject, new MyCallbackHandler());
if(p==null) { p = new SunPKCS11(new ByteArrayInputStream(pkcs11ConfigSettings.getBytes())); p.setCallbackHandler(new CallbackHandler() { @Override public void handle(Callback[] callbacks) throws IOException,
@Override public void close() { if (provider != null) { try { try { if (provider instanceof AuthProvider) { ((AuthProvider) provider).logout(); provider.clear(); } } catch (LoginException e) { LOG.error("Unable to logout : " + e.getMessage(), e); } Security.removeProvider(provider.getName()); } catch (SecurityException e) { LOG.error("Unable to remove provider '" + provider.getName() + "'", e); } finally { provider = null; } } }
authProvider.setCallbackHandler(new PasswordCallbackHandler(frame));
pkcs11Prov.login(new Subject(), new SwingPasswordCallbackHandler()); //explicit login