Lernprogramm zur Java-SE-Sicherheit - Schritt 3

Der Rest des Lernprogramms veranschaulicht, wie die Clientauthentifizierung aktiviert wird, bevor eine Verbindung zu einem eXtreme-Scale-Server hergestellt wird. Als Vorbereitung für den nächsten Schritt dieses Lernprogramms müssen Sie das Programm SecureSimpleApp.java in eine JAR-Datei packen und eine Gruppe von Konfigurationsdateien erstellen, zu der eine Datei security.xml und zwei JAAS-Konfigurationsdateien gehören. Mit der Datei security.xml können Sie die Authentifizierung in der Umgebung schreiben, und die JAAS-Konfigurationsdateien stellen die Authentifizierungsmechanismen beim Herstellen der Verbindung zum Server bereit.

Vorgehensweise

  1. Wechseln Sie in einem Befehlszeilenfenster in das Verzeichnis WXS-Ausgangsverzeichnis/applib, das Sie in Lernprogramm zur Java-SE-Sicherheit - Schritt 1 erstellt haben.
  2. Erstellen und kompilieren Sie die folgende Klasse SecureSimpleApp.java:
    SecureSimpleApp.java
    package com.ibm.websphere.objectgrid.security.sample.guide;
    
    import com.ibm.websphere.objectgrid.ClientClusterContext;
    import com.ibm.websphere.objectgrid.ObjectGrid;
    import com.ibm.websphere.objectgrid.ObjectGridManager;
    import com.ibm.websphere.objectgrid.ObjectGridManagerFactory;
    import com.ibm.websphere.objectgrid.security.config.ClientSecurityConfiguration;
    import com.ibm.websphere.objectgrid.security.config.ClientSecurityConfigurationFactory;
    import com.ibm.websphere.objectgrid.security.plugins.CredentialGenerator;
    import com.ibm.websphere.objectgrid.security.plugins.builtins.UserPasswordCredentialGenerator;
    
    public class SecureSimpleApp extends SimpleApp {
    
        public static void main(String[] args) throws Exception {
    
            SecureSimpleApp app = new SecureSimpleApp();
            app.run(args);
        }
    
        /**
         * Get the ObjectGrid
         * @return Eine ObjectGrid-Instanz.
         * @throws Exception
         */
        protected ObjectGrid getObjectGrid(String[] args) throws Exception {
            ObjectGridManager ogManager = ObjectGridManagerFactory.getObjectGridManager();
            ogManager.setTraceFileName("logs/client.log");
            ogManager.setTraceSpecification("ObjectGrid*=all=enabled:ORBRas=all=enabled");
    
            // Creates a ClientSecurityConfiguration object using the specified file
            ClientSecurityConfiguration clientSC = ClientSecurityConfigurationFactory
                    .getClientSecurityConfiguration(args[0]);
            
            // Creates a CredentialGenerator using the passed-in user and password.
            CredentialGenerator credGen = new UserPasswordCredentialGenerator(args[1], args[2]);
            clientSC.setCredentialGenerator(credGen);
            
            // Create an ObjectGrid by connecting to the catalog server 
            ClientClusterContext ccContext = ogManager.connect("localhost:2809", clientSC, null);
            ObjectGrid og = ogManager.getObjectGrid(ccContext, "accounting");
    
            return og;
    
        }
    
    }
  3. Kompilieren Sie das Paket mit diesen Dateien, und nennen Sie die JAR-Datei sec_sample.jar.
  4. Wechseln Sie in das Verzeichnis WXS-Ausgangsverzeichnis.
  5. Erstellen Sie ein Verzeichnis mit dem Namen security.
  6. Erstellen Sie eine Konfigurationsdatei mit dem Namen security.xml. In dieser Datei werden Eigenschaften der Serversicherheit definiert. Diese Eigenschaften gelten für Katalogserver und Container-Server gleichermaßen.
    security.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <securityConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://ibm.com/ws/objectgrid/config/security ../objectGridSecurity.xsd"
    	xmlns="http://ibm.com/ws/objectgrid/config/security">
    
    	<security securityEnabled="true" loginSessionExpirationTime="300" >
            
            <authenticator className ="com.ibm.websphere.objectgrid.security.plugins.builtins.KeyStoreLoginAuthenticator">
            </authenticator>
        	</security>
    </securityConfig>