@Override public void abort(Executor executor) throws SQLException { // no locking here since it is supposed to be used by admins when the socket // may be already in use checkClosedConnection(); // check permission SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPermission(new SQLPermission("callAbort")); } if (executor == null) { throw ThriftExceptionUtil.newSQLException( SQLState.LANG_UNEXPECTED_USER_EXCEPTION, null, "ClientConnection.abort: null executor passed"); } executor.execute(new Runnable() { @Override public void run() { // input and output protocol are identical in our usage clientService.getInputProtocol().getTransport().close(); } }); this.isOpen = false; }
@TestTargetNew( level = TestLevel.COMPLETE, notes = "invalid parameters checking missed. not fully supported", method = "SQLPermission", args = {java.lang.String.class, java.lang.String.class} ) public void testSQLPermissionStringString() { String validName = "setLog"; String validActions = "theActions"; SQLPermission thePermission = new SQLPermission(validName, validActions); assertNotNull(thePermission); assertEquals(validName, thePermission.getName()); // System.out.println("The actions: " + thePermission.getActions() + "." // ); assertEquals("", thePermission.getActions()); }
public TestPolicy(String policy) { switch (policy) { case "all": permissions.add(new AllPermission()); break; case "setLog": setMinimalPermissions(); permissions.add(new SQLPermission("setLog")); break; case "deregisterDriver": setMinimalPermissions(); permissions.add(new SQLPermission("deregisterDriver")); break; case "setSyncFactory": setMinimalPermissions(); permissions.add(new SQLPermission("setSyncFactory")); break; case "setSyncFactoryLogger": setMinimalPermissions(); permissions.add(new SQLPermission("setSyncFactory")); permissions.add(new LoggingPermission("control", null)); break; default: setMinimalPermissions(); } }
@Override public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException { // no locking here since it is supposed to be used by admins when the socket // may be already in use checkClosedConnection(); // check permission SecurityManager sm = System.getSecurityManager(); if (sm != null) { sm.checkPermission(new SQLPermission("setNetworkTimeout")); } setTimeout(milliseconds); }
public void testSQLPermissionStringString() { String validName = "setLog"; String validActions = "theActions"; SQLPermission thePermission = new SQLPermission(validName, validActions); assertNotNull(thePermission); assertEquals(validName, thePermission.getName()); // System.out.println("The actions: " + thePermission.getActions() + "." // ); assertEquals("", thePermission.getActions()); }
public static org.onosproject.security.Permission getOnosPermission(Permission permission) { if (permission instanceof AppPermission) { return new org.onosproject.security.Permission(AppPermission.class.getName(), permission.getName(), ""); } else if (permission instanceof FilePermission) { return new org.onosproject.security.Permission( FilePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof SerializablePermission) { return new org.onosproject.security.Permission( SerializablePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof NetPermission) { return new org.onosproject.security.Permission( NetPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof RuntimePermission) { return new org.onosproject.security.Permission( RuntimePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof SocketPermission) { return new org.onosproject.security.Permission( SocketPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof SQLPermission) { return new org.onosproject.security.Permission( SQLPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof PropertyPermission) { return new org.onosproject.security.Permission( PropertyPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof LoggingPermission) { return new org.onosproject.security.Permission( LoggingPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof SSLPermission) { return new org.onosproject.security.Permission( SSLPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof AuthPermission) { return new org.onosproject.security.Permission( AuthPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof PrivateCredentialPermission) { return new org.onosproject.security.Permission( PrivateCredentialPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof DelegationPermission) { return new org.onosproject.security.Permission( DelegationPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof javax.security.auth.kerberos.ServicePermission) { return new org.onosproject.security.Permission( javax.security.auth.kerberos.ServicePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof AudioPermission) { return new org.onosproject.security.Permission( AudioPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof AdaptPermission) { return new org.onosproject.security.Permission( AdaptPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof BundlePermission) { return new org.onosproject.security.Permission( BundlePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof CapabilityPermission) { return new org.onosproject.security.Permission( CapabilityPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof PackagePermission) { return new org.onosproject.security.Permission( PackagePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof ServicePermission) { return new org.onosproject.security.Permission( ServicePermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof AdminPermission) { return new org.onosproject.security.Permission( AdminPermission.class.getName(), permission.getName(), permission.getActions()); } else if (permission instanceof ConfigurationPermission) { return new org.onosproject.security.Permission( ConfigurationPermission.class.getName(), permission.getName(), permission.getActions()); } return null; }
private static Permission getPermission(org.onosproject.security.Permission permission) { String classname = permission.getClassName(); String name = permission.getName(); String actions = permission.getActions(); if (classname == null || name == null) { return null; } classname = classname.trim(); name = name.trim(); actions = actions.trim(); if (AppPermission.class.getName().equals(classname)) { return new AppPermission(name); } else if (FilePermission.class.getName().equals(classname)) { return new FilePermission(name, actions); } else if (SerializablePermission.class.getName().equals(classname)) { return new SerializablePermission(name, actions); } else if (NetPermission.class.getName().equals(classname)) { return new NetPermission(name, actions); } else if (RuntimePermission.class.getName().equals(classname)) { return new RuntimePermission(name, actions); } else if (SocketPermission.class.getName().equals(classname)) { return new SocketPermission(name, actions); } else if (SQLPermission.class.getName().equals(classname)) { return new SQLPermission(name, actions); } else if (PropertyPermission.class.getName().equals(classname)) { return new PropertyPermission(name, actions); } else if (LoggingPermission.class.getName().equals(classname)) { return new LoggingPermission(name, actions); } else if (SSLPermission.class.getName().equals(classname)) { return new SSLPermission(name, actions); } else if (AuthPermission.class.getName().equals(classname)) { return new AuthPermission(name, actions); } else if (PrivateCredentialPermission.class.getName().equals(classname)) { return new PrivateCredentialPermission(name, actions); } else if (DelegationPermission.class.getName().equals(classname)) { return new DelegationPermission(name, actions); } else if (javax.security.auth.kerberos.ServicePermission.class.getName().equals(classname)) { return new javax.security.auth.kerberos.ServicePermission(name, actions); } else if (AudioPermission.class.getName().equals(classname)) { return new AudioPermission(name, actions); } else if (AdaptPermission.class.getName().equals(classname)) { return new AdaptPermission(name, actions); } else if (BundlePermission.class.getName().equals(classname)) { return new BundlePermission(name, actions); } else if (CapabilityPermission.class.getName().equals(classname)) { return new CapabilityPermission(name, actions); } else if (PackagePermission.class.getName().equals(classname)) { return new PackagePermission(name, actions); } else if (ServicePermission.class.getName().equals(classname)) { return new ServicePermission(name, actions); } else if (AdminPermission.class.getName().equals(classname)) { return new AdminPermission(name, actions); } else if (ConfigurationPermission.class.getName().equals(classname)) { return new ConfigurationPermission(name, actions); } else if (ReflectPermission.class.getName().equals(classname)) { return new ReflectPermission(name, actions); } //AllPermission, SecurityPermission, UnresolvedPermission //AWTPermission, ReflectPermission not allowed return null; }
protected boolean checkSQLPermission(SQLPermission perm) { /* * SQL (and database in general) will require specialized techniques in EvoSuite. For now, we just forbid it */ return false; }
public void abort( Executor executor ) throws SQLException { // NOP if called on a closed connection. if ( isClosed() ) { return; } // Null executor not allowed. if ( executor == null ) { throw newSQLException( SQLState.UU_INVALID_PARAMETER, "executor", "null" ); } // // Must have privilege to invoke this method. // // The db jars should be granted this permission. We deliberately // do not wrap this check in an AccessController.doPrivileged() block. // If we did so, that would absolve outer code blocks of the need to // have this permission granted to them too. It is critical that the // outer code blocks enjoy this privilege. That is what allows // connection pools to prevent ordinary code from calling abort() // and restrict its usage to privileged tools. // SecurityManager securityManager = System.getSecurityManager(); if ( securityManager != null ) { securityManager.checkPermission( new SQLPermission( "callAbort" ) ); } // Mark the Connection as closed. Set the "aborting" flag to allow internal // processing in close() to proceed. beginAborting(); // // Now pass the Executor a Runnable which does the real work. // executor.execute ( new Runnable() { public void run() { try { rollback(); close(exceptionClose); } catch (SQLException se) { Util.logSQLException( se ); } } } ); }