Oracle8i Enterprise JavaBeans Developer's Guide and Reference Release 3 (8.1.7) Part Number A83725-01 |
|
Overview ======== This is the exact same example as under examples/ejb/basic/helloworld, except that this example is using SSL client auth. So, except for the SSL details, please refer to the readme file under examples/ejb/basic/helloworld for other details. The purpose of the example is to show how to use ssl client side authentication instead of username/password combination. Setup required -------------- You need to open the encrypted wallet(ewallet.der) provided in this directory using the wallet manager tool provided by Oracle, and save it as clear text wallet (cwallet.sso). The password is welcome12. Copy the generated cwallet.sso into TNS_ADMIN directory. The encrypted wallet(ewallet.der) is only valid for Solaris platforms. For other platforms, you should generate the wallet using Oracle's owm tool. This test also requires B64 encoded wallet(cert.txt) which is already present in this directory. You can also generate your own using Oracle's owmgui tool and using export option in the tool. The parameter SSL_CLIENT_AUTHENTICATION in $TNSADMIN/sqlnet.ora should be set to TRUE. Restart the database. The setup also requires creation of a global user, say guest. The script to create global user is in this directory(create.sh). This script prompts for username and password of a privileged user as input to this script.
import hello.Hello; import hello.HelloHome; import oracle.aurora.jndi.sess_iiop.ServiceCtx; import javax.naming.Context; import javax.naming.InitialContext; import java.util.Hashtable; public class Client { public static void main (String[] args) throws Exception { if (args.length != 4) { System.out.println ("usage: Client serviceURL objectName credentials_file password"); System.exit (1); } String serviceURL = args [0]; String objectName = args [1]; String credsFile = args [2]; String password = args [3]; Hashtable env = new Hashtable (); env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi"); env.put(Context.SECURITY_AUTHENTICATION, ServiceCtx.SSL_CLIENT_AUTH); env.put(Context.SECURITY_CREDENTIALS, password); // Simply specify a file that contains all the credential info. This is // the file generated by the wallet manager tool. env.put(Context.SECURITY_PRINCIPAL, credsFile); Context ic = new InitialContext (env); HelloHome hello_home = (HelloHome)ic.lookup (serviceURL + objectName); Hello hello = hello_home.create (); System.out.println (hello.helloWorld ()); } }
package hello; import javax.ejb.EJBHome; import javax.ejb.CreateException; import java.rmi.RemoteException; public interface HelloHome extends EJBHome { public Hello create () throws RemoteException, CreateException; }
package hello; import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Hello extends EJBObject { public String helloWorld () throws RemoteException; }
package helloServer; import javax.ejb.SessionBean; import javax.ejb.CreateException; import javax.ejb.SessionContext; import java.rmi.RemoteException; public class HelloBean implements SessionBean { // Methods of the Hello interface public String helloWorld () throws RemoteException { String v = System.getProperty("oracle.server.version"); return "Hello client, your javavm version is " + v + "."; } // Methods of the SessionBean public void ejbCreate () throws RemoteException, CreateException {} public void ejbRemove() {} public void setSessionContext (SessionContext ctx) {} public void ejbActivate () {} public void ejbPassivate () {} }
|
Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
|