Using JNDI Authentication Oracle Fusion Middleware Online Documentation Library

4-12 Programming Security for Oracle WebLogic Server

4.4 Using JNDI Authentication

Java clients use the Java Naming and Directory Interface JNDI to pass credentials to WebLogic Server. A Java client establishes a connection with WebLogic Server by getting a JNDI InitialContext. The Java client then uses the InitialContext to look up the resources it needs in the WebLogic Server JNDI tree. To specify a user and the users credentials, set the JNDI properties listed in Table 4–1 . These properties are stored in a hash table that is passed to the InitialContext constructor. Example 4–7 illustrates how to use JNDI authentication in a Java client running on WebLogic Server. Example 4–7 Example of Authentication ... Hashtable env = new Hashtable; env.putContext.INITIAL_CONTEXT_FACTORY, Note: The LoginModule.logout method is never called for a WebLogic Authentication provider or a custom Authentication provider, because once the Principals are created and placed into a Subject, the WebLogic Security Framework no longer controls the lifecycle of the Subject. Therefore, code that creates the JAAS LoginContext to log in and obtain the Subject should also call the LoginContext to log out. Calling LoginContext.logout results in the clearing of the Principals from the Subject. Note: JAAS is the preferred method of authentication, however, the WebLogic Authentication providers LoginModule supports only user name and password authentication. Thus, for client certificate authentication also referred to as two-way SSL authentication, you should use JNDI. To use JAAS for client certificate authentication, you must write a custom Authentication provider whose LoginModule does certificate authentication. For information on how to write LoginModules, see http:java.sun.comjavase6docstechnotesguidess ecurityjaasJAASLMDevGuide.html . Table 4–3 JNDI Properties for Authentication Property Meaning INITIAL_CONTEXT_FACTORY Provides an entry point into the WebLogic Server environment. The class weblogic.jndi.WLInitialContextFactory is the JNDI SPI for WebLogic Server. PROVIDER_URL Specifies the host and port of the WebLogic Server that provides the name service. For example: t3:weblogic:7001. SECURITY_PRINCIPAL Specifies the identity of the user when that user authenticates to the default active security realm. SECURITY_CREDENTIALS Specifies the credentials of the user when that user authenticates to the default active security realm. Using JAAS Authentication in Java Clients 4-13 weblogic.jndi.WLInitialContextFactory; env.putContext.PROVIDER_URL, t3:weblogic:7001; env.putContext.SECURITY_PRINCIPAL, javaclient; env.putContext.SECURITY_CREDENTIALS, javaclientpassword; ctx = new InitialContextenv;

4.5 Java Client JAAS Authentication Code Examples