JASPIC-Benutzerfeature (Java-Authentication SPI for Containers) konfigurieren

Sie können einen JASPIC-Provider entwickeln, um eingehende Webanforderungen mit der Schnittstelle com.ibm.wsspi.security.jaspi.ProviderService, die im Liberty-Server bereitgestellt wird, zu authentifizieren.

Informationen zu diesem Vorgang

Die JSR 196 (Java Specification Request) für die Spezifikation "Java™ Authentication SPI for Containers" definiert eine Schnittstelle für Authentifizierungsprovider. Sie müssen Ihren JASPIC-Provider im Liberty-Server als Benutzerfeature packen. Ihr Feature muss die Schnittstelle com.ibm.wsspi.security.jaspi.ProviderService implementieren.

Vorgehensweise

  1. Erstellen Sie eine OSGi-Komponente, die einen Service bereitstellt, der die Schnittstelle com.ibm.wsspi.security.jaspi.ProviderService implementiert.

    Die Schnittstelle ProviderService definiert die Methode getAuthConfigProvider, die von der Liberty-Laufzeitumgebung aufgerufen wird, um eine Instanz Ihrer JASPIC-Providerklasse abzurufen, die die Schnittstelle javax.security.auth.message.config.AuthConfigProvider implementiert.

    Im folgenden Beispiel werden Annotationen für OSGi Declarative Services verwendet:
    @package com.mycompany.jaspi;
    
    import java.util.Map;
    import javax.security.auth.message.config.AuthConfigFactory;
    import javax.security.auth.message.config.AuthConfigProvider;
    import org.osgi.service.component.ComponentContext;
    import com.mycompany.jaspi.SampleAuthConfigProvider;
    import com.ibm.wsspi.security.jaspi.ProviderService;
    
    @Component(service = { ProviderService.class },
               configurationPolicy = ConfigurationPolicy.IGNORE,
               immediate = true,
               property = { "myPoviderPoperty1=value1",
                            "myPoviderPoperty2=value2"})
    public class SampleJaspiProviderService implements ProviderService {
    
        Map<String, String> configProps = null;
    
        // Diese Methode wird von der Liberty-Laufzeitumgebung aufgerufen,
        // um eine Instanz von AuthConfigProvider abzurufen
        @Override
        public AuthConfigProvider getAuthConfigProvider(Map<String, String>,
                                                   AuthConfigFactory factory)
       {
            return new SampleAuthConfigProvider(configProps, factory);
       }
    
        protected void activate(ComponentContext cc) {
            // Die Konfigurationseigenschaften des Providers können bei Bedarf hier gelesen
            // und dann an die AuthConfigProvider-Factory übergeben werden.
            // In diesem Beispiel werden die Eigenschaften aus der OSGi-Komponentendefinition
            // gelesen.
            configProps = (Map<String, String>) cc.getProperties();
        }
    
        protected void deactivate(ComponentContext cc) {}
    }
  2. Packen Sie die Komponente zusammen mit Ihrem JASPIC-Authentifizierungsprovider in ein OSGi-Bundle, das Teil Ihres Benutzerfeatures ist.
  3. Vergewissern Sie sich, dass Ihr Feature den Inhalt des OSGi-Subsystems einschließt: com.ibm.websphere.appserver.jaspic-1.1; type="osgi.subsystem.feature".
  4. Nachdem das Feature im Verzeichnis der benutzerspezifischen Produkterweiterung installiert ist, konfigurieren Sie die Datei server.xml mit dem Featurenamen. Beispiel:
    <featureManager> 
       ...
       <feature>usr:myJaspiProvider</feature>
    </featureManager>

Symbol das den Typ des Artikels anzeigt. Taskartikel



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