Не удается получить доступ к службам администратора WSO2 IS 5.3.0 через angular

#wso2is

#wso2-identity-server

Вопрос:

Мы не можем вызвать ChallengeQuestionManagementAdminService из кода Angular. Получение ошибки с указанием недопустимого удаленного адреса

Включил учетные данные пользователя в авторизацию. Возможность использовать сервис с помощью SOAP UI, но не из Angular.

Служба администратора: ChallengeQuestionManagementAdminService

Ошибка:

 [2019-03-26 03:33:54,314]  WARN {org.wso2.carbon.core.services.authentication.AuthenticationUtil} -  Could not find IP address for domain name : 10.44.1.25:51954
[2019-03-26 03:33:54,315] ERROR {org.wso2.carbon.core.services.authentication.AbstractAuthenticator} -  Invalid remote address detected.
org.wso2.carbon.core.common.AuthenticationException: Authentication Failed : Invalid remote address passed - 10.44.1.25:51954
        at org.wso2.carbon.core.services.authentication.AuthenticationUtil.validateRemoteAddress(AuthenticationUtil.java:178)
        at org.wso2.carbon.core.services.authentication.AuthenticationUtil.getRemoteAddress(AuthenticationUtil.java:156)
        at org.wso2.carbon.core.services.authentication.AbstractAuthenticator.getRemoteAddress(AbstractAuthenticator.java:304)
        at org.wso2.carbon.core.services.authentication.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:136)
        at org.wso2.carbon.server.admin.module.handler.AuthenticationHandler.isAuthenticated(AuthenticationHandler.java:180)
        at org.wso2.carbon.server.admin.module.handler.AuthenticationHandler.authenticate(AuthenticationHandler.java:105)
        at org.wso2.carbon.server.admin.module.handler.AuthenticationHandler.invoke(AuthenticationHandler.java:66)
        at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:313)
  

Ответ №1:

[1] — это почти соответствующий код. Вы можете проверить логику. Какую версию сервера идентификации вы используете? Если вы знакомы с удаленной отладкой, вы можете отладить код, чтобы найти первопричину [2].

[1] https://github.com/wso2/carbon-kernel/blob/4.4.x/core/org.wso2.carbon.core.services/src/main/java/org/wso2/carbon/core/services/authentication/AuthenticationUtil.java#L167

[2] https://medium.com/@gayanmadusanka_80721/how-to-debug-component-in-wso2-identity-server-ce15a366e9bf

Ответ №2:

Отправьте запрос, который вы отправляете из Angular, через postman и проверьте, прошел ли он успешно. если да, убедитесь, что вы отправляете все необходимые заголовки из Angular, иначе у вас могут отсутствовать некоторые заголовки на месте или в вашей схеме запроса могут отсутствовать некоторые параметры.

Заголовки, которые необходимо включить

     headers.set( 'Accept', '*/*'); 
    headers.set( 'Content-Type', 'text/xml;charset=UTF-8');
    headers.set( 'Authorization', `Basic ${authToken}`); <!--should send base64encode(username:password) specific to account. --> 
    headers.set( 'SOAPAction', 'urn:setUserChallengeAnswers');