Référentiel Liberty[8.5.5.6 ou ultérieure]

Configuration d'une fonction utilisateur Java Authentication SPI for Containers (JASPIC)

Vous pouvez développer un fournisseur JASPIC pour authentifier les demandes Web entrantes à l'aide de l'interface com.ibm.wsspi.security.jaspi.ProviderService qui est fournie sur le serveur de profil Liberty.

Pourquoi et quand exécuter cette tâche

La spécification Java™ Authentication SPI for Containers, JSR 196, définit une interface pour les fournisseurs d'authentification. Dans le serveur de profil Liberty, vous devez packager votre fournisseur JASPIC en tant que fonction utilisateur. Votre fonction doit implémenter l'interface com.ibm.wsspi.security.jaspi.ProviderService.

Procédure

  1. Créez un composant OSGi qui fournit un service qui implémente l'interface com.ibm.wsspi.security.jaspi.ProviderService.

    L'interface ProviderService définit la méthode, getAuthConfigProvider, que l'environnement d'exécution Liberty appelle pour extraire une instance de votre classe de fournisseur JASPIC implémentant l'interface javax.security.auth.message.config.AuthConfigProvider.

    L'exemple suivant utilise les annotations de services déclaratifs OSGi :
    @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;
    
        // This method called by the Liberty profile runtime
        // to get an instance of AuthConfigProvider
        @Override
        public AuthConfigProvider getAuthConfigProvider(Map<String, String> 
                                                   AuthConfigFactory factory)
       {
            return new SampleAuthConfigProvider(configProps, factory);
       }
    
        protected void activate(ComponentContext cc) {
            // Read provider config properties here if needed,
            // then pass them to the AuthConfigProvider ctor.
            // This example reads the properties from the OSGi
            // component definition.
            configProps = (Map<String, String>) cc.getProperties();
        }
    
        protected void deactivate(ComponentContext cc) {}
    }
  2. Packagez le composant dans un bundle OSGi qui fait partie de votre fonction, avec votre fournisseur d'authentification JASPIC.
  3. Assurez-vous que votre fonction inclut le contenu de sous-système OSGi : com.ibm.websphere.appserver.jaspic-1.1; type="osgi.subsystem.feature".
  4. Une fois la fonction installée dans l'emplacement d'extension de produit utilisateur, configurez le fichier server.xml avec le nom de la fonction. Par exemple :
    <featureManager>
       ...
       <feature>usr:myJaspiProvider</feature>
    </featureManager>

Icône indiquant le type de rubrique Rubrique Tâche

Dispositions pour les centres de documentation | Commentaires


Icône d'horodatage Dernière mise à jour: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_developing_jaspic_auth_provider
Nom du fichier : twlp_developing_jaspic_auth_provider.html