Пользовательский модуль входа в систему JAAS с Websphere 8.5 - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть java клиент на WAS8.5 и CPE на WAS Liberty. Я разработал настраиваемый модуль входа в систему, который реализует javax.security.auth.spi.LoginModule.

На стороне клиента я добавил настраиваемый узел входа в систему в разделе Глобальная безопасность> JAAS> Вход в систему приложений и включил административную безопасность в разделе Глобальная безопасность.

На сервере Liberty я перешел по этой ссылке -> https://www.ibm.com/support/knowledgecenter/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_config_jaas_custom_login_module.html

Так выглядит мой метод login () и commit -

public boolean login() throws LoginException {

    System.out.println("CustomLoginModule.login...");

            customPrincipal = new CustomPrincipal("User-ID");

    return true;

}

public boolean commit() throws LoginException {

    boolean commitFlag = false;

    if(!subject.getPrincipals().contains(customPrincipal)) {

        subject.getPrincipals().add(customPrincipal);   

        commitFlag = true;
    }
    return commitFlag;

}

Я думаю, что должен добавить учетные данные, но у меня нет учетных данных пользователя. Как мне справиться с этим? Пожалуйста, помогите

Ошибка:

Исключение в потоке "P = 753968: O = 0: CT" com.fil enet .api.exception.EngineRuntimeException: FNRCS0005E : SECURITY_INVALID_CREDENTIALS: Доступ к Content Engine не был разрешен, поскольку библиотека API Content Engine или прослушиватель интерфейса веб-служб (WSI) не смогли найти необходимую информацию контекста безопасности. Ожидаемые учетные данные не были найдены в контексте безопасности. в com.fil enet .apiimpl.wsi.ClientOperation.getCredential (ClientOperation. java: 389) в com.fil enet .apiimpl.wsi.ClientOperation.getSoapEnvelopeSecurity (ClientOperation. java: 297) в com .fil enet .apiimpl.wsi.ServiceSessionNst.bStartXmlDocument (ServiceSessionNst. java: 1086) в com.fil enet .apiimpl.wsi.ServiceSessionNst.cReqRespPath (ServiceSessionNst. java: 35): 35 enet .apiimpl.wsi.ServiceSessionNst.getObjects (ServiceSessionNst. java: 187) в com.fil enet .apiimpl.util.SessionHandle.getObjects (SessionHandle. java: 346) в com.fil enet .apiimpl.core.Session.callGetObjects (Session. java: 132) в com.fil enet .apiimpl.core.Session.executeGetObject (Session. java: 340) в com.fil enet. apiimpl.core.Session.getObject (Session. java: 354) в com.fil enet .apiimpl.core.IndependentObjectImpl.getObject (IndependentObjectImpl. java: 147) в com.fil enet .apiimpl. core.IndependentObjectImpl.refre sh (IndependentObjectImpl. java: 155) в com.fil enet .api.core.Factory $ Domain.fetchInsta nce (Factory. java: 1586) в com. java .connection.ConnectionImpl $ 1.run (ConnectionImpl. java: 46)

...