Beispiel: Thin Client mit aktivierter Sicherheit ausführen

Ihr Java Thin Application Client benötigt keinen zusätzlichen Code für die Definition von Sicherheitsprovidern mehr, wenn Sie die Sicherheit für Ihre Instanz von WebSphere Application Server aktiviert haben. Dieser Code muss in IBM i Java™ Thin Clients entfernt werden, um Migrations- und Kompatibilitätsprobleme zu vermeiden. Für die Konfiguration der Sicherheitsprovider wird jetzt die Datei "java.security" im Verzeichnis "properties" aus Ihrer WebSphere-Instanz verwendet.

Die Sicherheitsprovider wurden über das Programm in der Methode main() vor allen Codeabschnitten definiert, die auf Enterprise-Beans zugreifen:
import java.security.*;
  ...
  if (System.getProperty("os.name").equals("OS/400")) {

    // Zuerst die Liste der Standardprovider festlegen.
    Provider jceProv = null;
    Provider jsseProv = null;
    Provider sunProv = null;

    // Fall berücksichtigen, dass der Provider nicht benötigt wird,
    // wenn er nicht im Klassenpfad der Clientanwendung enthalten ist
    try {
      jceProv = new com.ibm.crypto.provider.IBMJCE();
    }
    catch (Exception ex) {
	ex.printStackTrace();
    throw new Exception("Unable to acquire provider.");
	}

    try {
      jsseProv = new com.ibm.jsse.JSSEProvider();
    }
    catch (Exception ex) {
	ex.printStackTrace();
    throw new Exception("Unable to acquire provider.");
	}

    try {
      sunProv = new sun.security.provider.Sun();
    }
    catch (Exception ex) {
	ex.printStackTrace();
    throw new Exception("Unable to acquire provider.");
	}

    // Provider früh und vor anderen Providern aktivieren, um
    // eine konsistente Leistung und Funktionalität zu gewährleisten
    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);
    }

    // Standardsortierung basierend auf admin/startstd-Eigenschaftendatei anpassen.
    // Maximal zulässiger Wert in der Eigenschaftendatei ist 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) {
          // provider not found
          continue;
        }

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

          // Index 0 am Ende der vorhandenen Liste hinzufügen
          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")

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tcli_thinsec
Dateiname:tcli_thinsec.html