Почему мой пользовательский перехватчик не инициализируется?

Я пытаюсь разработать и развернуть собственный перехватчик ассоциации доверия на сервере приложений Websphere. Сделал следующие шаги

  • Создан класс, реализующий интерфейс TrustAssociationInterceptor и его методы.
  • Создал JAR и поместил его в папку lib/ext каталога сервера.
  • Создал запись моего пользовательского класса перехватчика в «Глобальная безопасность -> Веб-безопасность и безопасность 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);
}

}

С уважением, Эканш


person Ekansh Sharma    schedule 20.09.2017    source источник
comment
У вас включена административная безопасность и безопасность приложений?   -  person Gas    schedule 20.09.2017
comment
Да, административная безопасность и защита приложений включены   -  person Ekansh Sharma    schedule 20.09.2017
comment
Это должно сработать, можете ли вы добавить код - определение класса и метод инициализации к вопросу (удалить тела других методов, которые у вас есть).   -  person Gas    schedule 21.09.2017
comment
Спасибо, добавил код метода init. Также хотел бы отметить, что я использую версию WAS 8.0.5. Поддерживается ли для этой версии пользовательский TAI?   -  person Ekansh Sharma    schedule 22.09.2017


Ответы (1)


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

Надеюсь, поможет.

person Gas    schedule 22.09.2017