首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的自定义阻断器没有初始化?

为什么我的自定义阻断器没有初始化?
EN

Stack Overflow用户
提问于 2017-09-20 09:54:55
回答 1查看 683关注 0票数 0

我正试图在Websphere Application Server上开发和部署一个自定义信任关联拦截器。下面的步骤

  • 创建一个实现TrustAssociationInterceptor接口的类及其方法
  • 创建了一个JAR,并将其放在服务器目录的lib/ext文件夹下。
  • 在“全局安全-> Web和Security ->信任关联->拦截器”中创建自定义拦截器类的条目,启用拦截器(复选框)并重新启动服务器。

无法在任何日志(包括服务器启动/停止日志、Sysout日志或跟踪日志)中找到我在自定义拦截器初始化方法中放置的sysout。无法找出哪种配置被遗漏了。此外,在将自定义拦截器类添加到interceptor列表时,是否需要在自定义拦截器类中添加任何自定义属性?如有任何指示,将不胜感激。

下面是自定义TAI代码

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2017-09-22 12:03:59

在包括8.0.5在内的所有WAS版本中都支持TAIs。你所做的一切都是正确的,但只是为了确保:

  • 验证TAI配置中是否有完整的包类名,如:com.company.CustomSSOTAI
  • 再次单击Enable interceptros,保存并重新启动。我知道是你干的-)

一旦重新启动,您也应该在SystemOut.log中看到关于其他TAIs的消息(如果您没有删除它们)。看看这个,你的台装好了:

代码语言:javascript
复制
[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

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46318876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档