Ejemplo: ejecución del cliente ligero con la seguridad habilitada

El cliente ligero de aplicaciones Java™ ya no necesita código adicional para establecer los proveedores de seguridad si ha habilitado la seguridad para la instancia de WebSphere Application Server. Este código que se encuentra en los clientes ligeros Java de IBM i se debe suprimir para que no se produzcan problemas de migración y compatibilidad. El archivo java.security de la instancia de WebSphere del directorio de propiedades se utiliza ahora para configurar los proveedores de seguridad.

Los proveedores de seguridad se han establecido de forma programada en el método main() y aparecen antes de cualquier código al que acceden los enterprise beans:
import java.security.*;
  ...
  if (System.getProperty("os.name").equals("OS/400")) {

    // Establecer la lista de proveedores predeterminada en primer lugar.
    Provider jceProv = null;
    Provider jsseProv = null;
    Provider sunProv = null;

    // tener en cuenta los casos en los que no se necesita el proveedor, 
    // cuando no está en la classpath del cliente de aplicaciones.
             try {
      jceProv = new com.ibm.crypto.provider.IBMJCE();
    }
    catch(Exception ex) {
	ex.printStackTrace();
    throw new Exception("No se ha podido adquirir el proveedor.");
	}

             try {
      jsseProv = new com.ibm.jsse.JSSEProvider();
    }
    catch(Exception ex) {
	ex.printStackTrace();
    throw new Exception("No se ha podido adquirir el proveedor.");
	}

             try {
      sunProv = new sun.security.provider.Sun();
    }
    catch(Exception ex) {
	ex.printStackTrace();
    throw new Exception("No se ha podido adquirir el proveedor.");
	}

    // Permitir proveedores con anticipación a otros proveedores
    // para que el rendimiento y la función sean coherentes.
    if ( (null != sunProv) && (1 != Security.insertProviderAt(sunProv, 1)) ) {
      Security.removeProvider(sunProv.getName());
      Security.insertProviderAt(sunProv, 1);
    }
    if ( (null != jceProv) && (2 != Security.insertProviderAt(jceProv, 2)) ) {
      Security.removeProvider(jceProv.getName());
      Security.insertProviderAt(jceProv, 2);
    }
    if ( (null != jsseProv) && (3 != Security.insertProviderAt(jsseProv, 3)) ) {
      Security.removeProvider(jsseProv.getName());
      Security.insertProviderAt(jsseProv, 3);
    }

    // Ajustar el orden predeterminado en base al archivo de propiedades admin/startstd.
    // El número máximo permitido en el archivo de propiedades es de 20.
    String provName;
    Class  provClass;
    Object provObj =  null;

    for (int i = 0; i < 21; i++) {
      provName = System.getProperty("os400.security.provider."+ i);

      if (null != provName) {

                 try {
          provClass = Class.forName(provName);
          provObj = provClass.newInstance();
        }
        catch(Exception ex) {
          // no se ha encontrado el proveedor
          continue;
        }

        if (i != Security.insertProviderAt((Provider) provObj, i)) {

          // el índice 0 se añade al final de la lista existente
          if (i != 0) {
            Security.removeProvider(((Provider) provObj).getName());
            Security.insertProviderAt((Provider) provObj, i);
          }
        }
      } // end if (null != provName)
    } // end for (int i = 0; i < 21; i++)
  } // end if ("os.name").equals("OS/400")

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tcli_thinsec
File name: tcli_thinsec.html