
![[8.5.5.6 或更新版本]](../ng_v8556.gif)
配置 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 介面。
程序
- 建立 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; // Liberty 設定檔執行時期會呼叫此方法, // 以取得 AuthConfigProvider 類別的實例 @Override public AuthConfigProvider getAuthConfigProvider(Map<String, String> AuthConfigFactory factory) { return new SampleAuthConfigProvider(configProps, factory); } protected void activate(ComponentContext cc) { // 必要時,會讀取這裡的提供者配置內容, // 然後傳遞給 AuthConfigProvider。 // 此範例會讀取 OSGi // 元件定義中的內容。 configProps = (Map<String, String>) cc.getProperties(); } protected void deactivate(ComponentContext cc) {} }
- 將該元件與您的 JASPIC 鑑別提供者一起包裝成 OSGi 軟體組,成為您使用者特性的一部分。
- 確定您的特性包含 OSGi 子系統內容:com.ibm.websphere.appserver.jaspic-1.1; type="osgi.subsystem.feature"。
- 將特性安裝到使用者產品延伸位置之後,利用特性名稱來配置 server.xml 檔。例如:
<featureManager> ... <feature>usr:myJaspiProvider</feature> </featureManager>