#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].
[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');