配置 Java Authentication SPI for Containers (JASPIC) 用户功能部件

通过使用 Liberty 服务器中提供的 com.ibm.wsspi.security.jaspi.ProviderService 接口,可开发 JASPIC 提供程序以认证入站 Web 请求。

关于此任务

Java™ Authentication SPI for Containers 规范 JSR 196 为认证服务提供程序定义接口。在 Liberty 服务器中,必须将 JASPIC 提供程序打包为用户功能部件。您的功能部件必须实现 com.ibm.wsspi.security.jaspi.ProviderService 接口。

过程

  1. 创建 OSGi 组件,该组件提供用于实现 com.ibm.wsspi.security.jaspi.ProviderService 接口的服务。

    ProviderService 接口定义 getAuthConfigProvider 方法,Liberty 运行时调用此方法以检索用于实现 javax.security.auth.message.config.AuthConfigProvider 接口的 JASPIC 提供者类的实例。

    以下示例使用 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 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 factory.
            // This example reads the properties from the OSGi
            // component definition.
            configProps = (Map<String, String>) cc.getProperties();
        }
    
        protected void deactivate(ComponentContext cc) {}
    }
  2. 将该组件与您的 JASPIC 认证服务提供程序一起打包成用户功能部件中的 OSGi 捆绑软件。
  3. 确保您的功能部件包含 OSGi 子系统内容:com.ibm.websphere.appserver.jaspic-1.1; type="osgi.subsystem.feature"
  4. 将功能部件安装到用户产品扩展位置之后,使用功能部件名称来配置 server.xml 文件。例如:
    <featureManager>
       ...
       <feature>usr:myJaspiProvider</feature>
    </featureManager>

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_developing_jaspic_auth_provider
文件名:twlp_developing_jaspic_auth_provider.html