2017-09-20 66 views
0

我正試圖在Websphere Application Server上開發和部署自定義信任關聯攔截器。做下面的步驟爲什麼我的自定義攔截器未初始化?

  • 創建一個類實現TrustAssociationInterceptor接口及其方法
  • 創建一個JAR,並把它放在下創造了一個我的自定義攔截器類的條目中的服務器目錄
  • 的lib/ext目錄文件夾「全球安全 - > Web和SIP安全 - >信任關聯 - >攔截器」啓用攔截器(複選框)並重新啓動服務器。

無法找到Sysout我在自定義攔截器的初始化方法中放置了任何日誌中的任何位置,包括服務器啓動/停止日誌,sysout日誌或跟蹤日誌。 無法找出錯過了哪個配置。 另外,將自定義攔截器類添加到攔截器列表時,是否需要添加任何自定義屬性? 任何指針,將不勝感激。

下面是定製TAI代碼

public class CustomSSOTAI implements TrustAssociationInterceptor { 

private static final String CUSTOM_TAI_VERSION = "1.0.0"; 
private static final String CUSTOM_TAI_TYPE = "Custom Trust Association Interceptor"; 

@Override 
public void cleanup() { 
    // TODO Auto-generated method stub 
    System.out.println("*****##### Custom SSO TAI - Inside cleanup Method #####*****"); 
} 

@Override 
public String getType() { 
    // TODO Auto-generated method stub 
    System.out.println("*****##### Custom SSO TAI - Inside getType Method #####*****"); 
    return CUSTOM_TAI_TYPE; 
} 

@Override 
public String getVersion() { 
    // TODO Auto-generated method stub 
    System.out.println("*****##### Custom SSO TAI - Inside getVersion Method #####*****"); 
    return CUSTOM_TAI_VERSION; 
} 

@Override 
public int initialize(Properties arg0) throws WebTrustAssociationFailedException { 
    // TODO Auto-generated method stub 
    System.out.println("*****##### Custom SSO TAI - Inside initialize Method #####*****"); 
    System.out.println("*****##### Initializing Custom SSO TAI #####*****"); 
    return 0; 
} 

@Override 
public boolean isTargetInterceptor(HttpServletRequest arg0) throws WebTrustAssociationException { 
    // TODO Auto-generated method stub 
    System.out.println("*****##### Custom SSO TAI - Entering isTargetInterceptor Method #####*****"); 

    System.out.println("Determining if this TAI should handle the incoming request..."); 

    if (arg0.getParameter("callCustomInterceptor") != null) { 
     System.out.println("callCustomInterceptor: " + arg0.getParameter("callCustomInterceptor")); 
     System.out.println("Custom SSO TAI is being used to establish trust!"); 
     return true; 
    } 

    System.out.println("Bypassing Custom SSO TAI, did not find a user ID in the request"); 
    System.out.println("*****##### Custom SSO TAI - Exiting isTargetInterceptor Method #####*****"); 

    return false; 
} 

@Override 
public TAIResult negotiateValidateandEstablishTrust(HttpServletRequest arg0, HttpServletResponse arg1) 
     throws WebTrustAssociationFailedException { 
    // TODO Auto-generated method stub 
    System.out.println("*****##### Custom SSO TAI - Entering negotiateValidateandEstablishTrust Method #####*****"); 
    String userId = arg0.getParameter("uid"); 
    if (userId.equals("portalUser")) { 
     System.out.println("*********** CustomSSOTAI *****************"); 
     System.out.println("UserID = " + userId); 
     return TAIResult.create(SipServletResponse.SC_OK, userId); 
    } 

    System.out.println("*****##### Custom SSO TAI - Exiting negotiateValidateandEstablishTrust Method #####*****"); 
    return TAIResult.create(SipServletResponse.SC_FORBIDDEN, userId); 
} 

}

親切問候, Ekansh

+0

您是否啓用了管理和應用程序安全性? – Gas

+0

是的,啓用管理和應用程序安全 –

+1

這應該工作,你可以添加代碼類定義和init方法的問題(刪除其他方法的機構)。 – Gas

回答

0

TAI的所有WAS版本,包括8.0.5的支持。你是做正確的,但只是爲了確保:

  • 驗證您在TAI配置有全包類的名稱,如:com.company.CustomSSOTAI
  • 再次單擊Enable interceptros,保存並重啓。我知道你做到了;-)

一旦重新啓動,你應該在SystemOut.log消息中看到關於其他TAI的消息(如果你沒有刪除它們)。檢查一下,你的TAI已加載:

[9/22/17 13:58:11:885 CEST] 00000000 SystemOut  O com.tivoli.pd.as.jacc.cfg.TAMConfigService initialize() About to initialize PDAdmin with the value C:\IBM\WebSphere\AppServer80\tivoli\tam 
[9/22/17 13:58:11:947 CEST] 00000000 TrustAssociat A SECJ0121I: Trust Association Init class com.ibm.ws.security.web.TAMTrustAssociationInterceptorPlus loaded successfully 
... 
[9/22/17 13:58:11:963 CEST] 00000000 TrustAssociat A SECJ0121I: Trust Association Init class com.ibm.ws.security.spnego.TrustAssociationInterceptorImpl loaded successfully 
... 
[9/22/17 13:58:12:010 CEST] 00000000 TrustAssociat A SECJ0121I: Trust Association Init class gas.tai.CustomTAI loaded successfully 
[9/22/17 13:58:12:010 CEST] 00000000 SystemOut  O *****##### Custom SSO TAI - Inside initialize Method #####***** 
[9/22/17 13:58:12:010 CEST] 00000000 SystemOut  O *****##### Initializing Custom SSO TAI #####***** 
[9/22/17 13:58:12:010 CEST] 00000000 TrustAssociat A SECJ0122I: Trust Association Init Interceptor signature: v1.0 
[9/22/17 13:58:12:010 CEST] 00000000 distSecurityC I SECJ0240I: Security service initialization completed successfully 

希望它有幫助。

相關問題