Search in sources :

Example 81 with Subject

use of javax.security.auth.Subject in project jdk8u_jdk by JetBrains.

the class ReadPropertyException method run.

@Override
public Object run() throws Exception {
    Utils.writeFile(filename);
    AccessControlContext acc = AccessController.getContext();
    Subject subject = Subject.getSubject(acc);
    ReadFromFileExceptionAction readFromFile = new ReadFromFileExceptionAction(filename);
    return Subject.doAs(subject, readFromFile);
}
Also used : Subject(javax.security.auth.Subject)

Example 82 with Subject

use of javax.security.auth.Subject in project jdk8u_jdk by JetBrains.

the class Optimize method main.

public static void main(String[] args) {
    ProtectionDomain pd1 = new ProtectionDomain(new CodeSource(null, (java.security.cert.Certificate[]) null), new Permissions(), null, null);
    ProtectionDomain pd2 = new ProtectionDomain(new CodeSource(null, (java.security.cert.Certificate[]) null), new Permissions(), null, null);
    ProtectionDomain pd3 = new ProtectionDomain(new CodeSource(null, (java.security.cert.Certificate[]) null), new Permissions(), null, null);
    ProtectionDomain[] current = new ProtectionDomain[] { pd1, pd2 };
    ProtectionDomain[] assigned = new ProtectionDomain[] { pd3, pd2 };
    SubjectDomainCombiner sdc = new SubjectDomainCombiner(new Subject());
    ProtectionDomain[] combined = sdc.combine(current, assigned);
    // (ordering of returned domains)
    if (combined.length == 4 && combined[0] != pd1 && combined[1] != pd2 && combined[2] == pd3 && combined[3] == pd2) {
        System.out.println("test passed");
    } else {
        System.out.println("test failed");
        throw new SecurityException("Test Failed");
    }
}
Also used : SubjectDomainCombiner(javax.security.auth.SubjectDomainCombiner) Subject(javax.security.auth.Subject)

Example 83 with Subject

use of javax.security.auth.Subject in project jdk8u_jdk by JetBrains.

the class Synch method main.

public static void main(String[] args) {
    Subject subject = new Subject();
    final Set principals = subject.getPrincipals();
    principals.add(new X500Principal("CN=Alice"));
    new Thread() {

        public void run() {
            Principal last = new X500Principal("CN=Bob");
            for (int i = 0; !finished; i++) {
                Principal next = new X500Principal("CN=Bob" + i);
                principals.add(next);
                principals.remove(last);
                last = next;
            }
        }
    }.start();
    for (int i = 0; i < 1000; i++) {
        Subject.doAs(subject, new PrivilegedAction() {

            public Object run() {
                return Subject.doAs(new Subject(true, Collections.singleton(new X500Principal("CN=Claire")), Collections.EMPTY_SET, Collections.EMPTY_SET), new PrivilegedAction() {

                    public Object run() {
                        return null;
                    }
                });
            }
        });
    }
    finished = true;
}
Also used : Set(java.util.Set) PrivilegedAction(java.security.PrivilegedAction) X500Principal(javax.security.auth.x500.X500Principal) Subject(javax.security.auth.Subject) Principal(java.security.Principal) X500Principal(javax.security.auth.x500.X500Principal)

Example 84 with Subject

use of javax.security.auth.Subject in project jdk8u_jdk by JetBrains.

the class SelfExpansion method main.

public static void main(String[] args) throws Exception {
    Subject s = new Subject();
    s.getPrincipals().add(new javax.security.auth.x500.X500Principal("CN=test"));
    s.getPrivateCredentials().add(new String("test"));
    try {
        Subject.doAsPrivileged(s, new PrivilegedAction() {

            public Object run() {
                java.util.Iterator i = Subject.getSubject(AccessController.getContext()).getPrivateCredentials().iterator();
                return i.next();
            }
        }, null);
        System.out.println("Test succeeded");
    } catch (Exception e) {
        System.out.println("Test failed");
        e.printStackTrace();
        throw e;
    }
}
Also used : java.security(java.security) Subject(javax.security.auth.Subject)

Example 85 with Subject

use of javax.security.auth.Subject in project jdk8u_jdk by JetBrains.

the class SubjectDelegation3Test method main.

public static void main(String[] args) throws Exception {
    // Check for supported operating systems: Solaris
    //
    // This test runs only on Solaris due to CR 6285916
    //
    String osName = System.getProperty("os.name");
    System.out.println("os.name = " + osName);
    if (!osName.equals("SunOS")) {
        System.out.println("This test runs on Solaris only.");
        System.out.println("Bye! Bye!");
        return;
    }
    String policyFile = args[0];
    String testResult = args[1];
    System.out.println("Policy file = " + policyFile);
    System.out.println("Expected test result = " + testResult);
    JMXConnectorServer jmxcs = null;
    JMXConnector jmxc = null;
    try {
        // Create an RMI registry
        //
        System.out.println("Start RMI registry...");
        Registry reg = null;
        int port = 5800;
        while (port++ < 6000) {
            try {
                reg = LocateRegistry.createRegistry(port);
                System.out.println("RMI registry running on port " + port);
                break;
            } catch (RemoteException e) {
                // Failed to create RMI registry...
                System.out.println("Failed to create RMI registry " + "on port " + port);
            }
        }
        if (reg == null) {
            System.exit(1);
        }
        // Set the default password file
        //
        final String passwordFile = System.getProperty("test.src") + File.separator + "jmxremote.password";
        System.out.println("Password file = " + passwordFile);
        // Set policy file
        //
        final String policy = System.getProperty("test.src") + File.separator + policyFile;
        System.out.println("PolicyFile = " + policy);
        System.setProperty("java.security.policy", policy);
        // Instantiate the MBean server
        //
        System.out.println("Create the MBean server");
        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
        // Register the SimpleStandardMBean
        //
        System.out.println("Create SimpleStandard MBean");
        SimpleStandard s = new SimpleStandard("delegate");
        mbs.registerMBean(s, new ObjectName("MBeans:type=SimpleStandard"));
        // Create Properties containing the username/password entries
        //
        Properties props = new Properties();
        props.setProperty("jmx.remote.x.password.file", passwordFile);
        // Initialize environment map to be passed to the connector server
        //
        System.out.println("Initialize environment map");
        HashMap env = new HashMap();
        env.put("jmx.remote.authenticator", new JMXPluggableAuthenticator(props));
        // Set Security Manager
        //
        System.setSecurityManager(new SecurityManager());
        // Create an RMI connector server
        //
        System.out.println("Create an RMI connector server");
        JMXServiceURL url = new JMXServiceURL("rmi", null, 0, "/jndi/rmi://:" + port + "/server" + port);
        jmxcs = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbs);
        jmxcs.start();
        // Create an RMI connector client
        //
        System.out.println("Create an RMI connector client");
        HashMap cli_env = new HashMap();
        // These credentials must match those in the default password file
        //
        String[] credentials = new String[] { "monitorRole", "QED" };
        cli_env.put("jmx.remote.credentials", credentials);
        jmxc = JMXConnectorFactory.connect(url, cli_env);
        Subject delegationSubject = new Subject(true, Collections.singleton(new JMXPrincipal("delegate")), Collections.EMPTY_SET, Collections.EMPTY_SET);
        MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(delegationSubject);
        // Get domains from MBeanServer
        //
        System.out.println("Domains:");
        String[] domains = mbsc.getDomains();
        for (int i = 0; i < domains.length; i++) {
            System.out.println("\tDomain[" + i + "] = " + domains[i]);
        }
        // Get MBean count
        //
        System.out.println("MBean count = " + mbsc.getMBeanCount());
        // Get State attribute
        //
        String oldState = (String) mbsc.getAttribute(new ObjectName("MBeans:type=SimpleStandard"), "State");
        System.out.println("Old State = \"" + oldState + "\"");
        // Set State attribute
        //
        System.out.println("Set State to \"changed state\"");
        mbsc.setAttribute(new ObjectName("MBeans:type=SimpleStandard"), new Attribute("State", "changed state"));
        // Get State attribute
        //
        String newState = (String) mbsc.getAttribute(new ObjectName("MBeans:type=SimpleStandard"), "State");
        System.out.println("New State = \"" + newState + "\"");
        if (!newState.equals("changed state")) {
            System.out.println("Invalid State = \"" + newState + "\"");
            System.exit(1);
        }
        // Add notification listener on SimpleStandard MBean
        //
        System.out.println("Add notification listener...");
        mbsc.addNotificationListener(new ObjectName("MBeans:type=SimpleStandard"), new NotificationListener() {

            public void handleNotification(Notification notification, Object handback) {
                System.out.println("Received notification: " + notification);
            }
        }, null, null);
        // Unregister SimpleStandard MBean
        //
        System.out.println("Unregister SimpleStandard MBean...");
        mbsc.unregisterMBean(new ObjectName("MBeans:type=SimpleStandard"));
    } catch (SecurityException e) {
        if (testResult.equals("ko")) {
            System.out.println("Got expected security exception = " + e);
        } else {
            System.out.println("Got unexpected security exception = " + e);
            e.printStackTrace();
            throw e;
        }
    } catch (Exception e) {
        System.out.println("Unexpected exception caught = " + e);
        e.printStackTrace();
        throw e;
    } finally {
        //
        if (jmxc != null)
            jmxc.close();
        //
        if (jmxcs != null)
            jmxcs.stop();
        // Say goodbye
        //
        System.out.println("Bye! Bye!");
    }
}
Also used : JMXServiceURL(javax.management.remote.JMXServiceURL) JMXPluggableAuthenticator(com.sun.jmx.remote.security.JMXPluggableAuthenticator) HashMap(java.util.HashMap) Attribute(javax.management.Attribute) JMXPrincipal(javax.management.remote.JMXPrincipal) Registry(java.rmi.registry.Registry) LocateRegistry(java.rmi.registry.LocateRegistry) Properties(java.util.Properties) Subject(javax.security.auth.Subject) Notification(javax.management.Notification) RemoteException(java.rmi.RemoteException) JMXConnectorServer(javax.management.remote.JMXConnectorServer) ObjectName(javax.management.ObjectName) JMXConnector(javax.management.remote.JMXConnector) RemoteException(java.rmi.RemoteException) MBeanServerConnection(javax.management.MBeanServerConnection) MBeanServer(javax.management.MBeanServer) NotificationListener(javax.management.NotificationListener)

Aggregations

Subject (javax.security.auth.Subject)669 Test (org.testng.annotations.Test)131 Test (org.junit.Test)122 HashMap (java.util.HashMap)120 Principal (java.security.Principal)114 HashSet (java.util.HashSet)109 Set (java.util.Set)82 EntitlementException (com.sun.identity.entitlement.EntitlementException)64 LoginContext (javax.security.auth.login.LoginContext)62 LoginException (javax.security.auth.login.LoginException)49 ConditionDecision (com.sun.identity.entitlement.ConditionDecision)47 ResourceResponse (org.forgerock.json.resource.ResourceResponse)47 RealmContext (org.forgerock.openam.rest.RealmContext)46 Context (org.forgerock.services.context.Context)41 SSOToken (com.iplanet.sso.SSOToken)40 IOException (java.io.IOException)40 ClientContext (org.forgerock.services.context.ClientContext)40 Map (java.util.Map)38 SSOTokenContext (org.forgerock.openam.rest.resource.SSOTokenContext)38 ResourceException (org.forgerock.json.resource.ResourceException)37