/** * This resets all caches inside the factory. */ public static synchronized void resetCaches() { supportsReuse = true; java.lang.SecurityManager sm = System.getSecurityManager(); if (sm != null && sm instanceof J2EESecurityManager) { if (!((J2EESecurityManager)sm).cacheEnabled()) { ((J2EESecurityManager)sm).enablePermissionCache (securityManagerCache); } } Iterator iter = cacheMap.values().iterator(); while (iter.hasNext()) { Object cache = iter.next(); if (cache instanceof PermissionCache) { ((PermissionCache) cache).reset(); } } } }
@Override public void checkConnect(String host, int port) { if (checkConnectPermission()) { return; } super.checkConnect(host, port); }
@Override public void checkPropertyAccess(String key) { if (checkProperty(key)) { return; } super.checkPropertyAccess(key); }
@Override public void onInitialization() { java.lang.SecurityManager secMgr = System.getSecurityManager(); //TODO: need someway to not override the SecMgr if the EmbeddedServer was //run with a different non-default SM. //right now there seems no way to find out if the SM is the VM's default SM. if (secMgr != null && !(J2EESecurityManager.class.equals(secMgr.getClass()))) { J2EESecurityManager mgr = new J2EESecurityManager(); try { System.setSecurityManager(mgr); } catch (SecurityException ex) { _logger.log(Level.WARNING, "security.secmgr.could.not.override"); } } initializeJMAC(); }
private boolean checkConnectPermission() { if (cacheEnabled()) { return connectPerm.checkPermission(); } return false; }
@Override public void checkAccess(ThreadGroup t) { super.checkAccess(t); checkPermission(new java.lang.RuntimePermission("modifyThreadGroup")); }
if (!isJWS && secMgr != null && !(J2EESecurityManager.class.equals(secMgr.getClass()))) { J2EESecurityManager mgr = new J2EESecurityManager(); System.setSecurityManager(mgr);
private boolean checkProperty(String key) { if(key.equals("javax.net.ssl.keyStorePassword") || key.equals("javax.net.ssl.trustStorePassword")){ SSLUtils.checkPermission(key); } if (cacheEnabled()) { return cache.checkPermission(new PropertyPermission(key, "read")); } return false; }
@Override public void checkConnect(String host, int port, Object context) { if (checkConnectPermission()) { return; } super.checkConnect(host, port, context); }