Периодически возникает проблема, в то время как рукопожатие между IOS родной Приложение для MobileFirst 7.1.0.00.20180425-1124
Выводы
- Обнаружено, что параметр запроса "scope" отправляется на сервер в виде пустой строки.
Здесь я пытаюсь выполнить WWW-аутентификацию на основе пользовательской аутентификации.
Фактический URL
http://localhost:8080/BA/authorization/v1/authorization?client_id=rr4a6042193a89c44a8d2415874ef6d279123456
&isAjaxRequest=true&redirect_uri=http%3A%2F%2Fmfpredirecturi&response_type=code&scope=
Ожидаемый URL
http://localhost:8080/BA/authorization/v1/authorization?client_id=rr4a6042193a89c44a8d2415874ef6d279123456
&isAjaxRequest=true&redirect_uri=http%3A%2F%2Fmfpredirecturi&response_type=code&scope=UserAuthRealm
Согласно
worklight-jee-library.jar - com.worklight.authorization.endpoint.token.
TokenEndpoint открытый ключ не соответствует .
if (!Bytes.areEqual(clientPublicKey, jwsParts.getPublicKey().getEncoded())){
logger.debug(method, "JWS signature does not match the client ID");
return false;
}
return true;
Пока что проблема возникла в
устройствах iOS 12 .не в другой версии ОС
И, пожалуйста, найдите используемую конфигурацию ..
application-descriptor.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<nativeIOSApp xmlns="http://www.worklight.com/native-ios-descriptor" applicationId="**App" bundleId="com.xxx.mobile" id="**App" platformVersion="7.1.0.00.20160528-1648" securityTest="CustomAppAuthenticityAutoProvTest" version="7.2">
<displayName>iOS</displayName>
<description>iOS Mobile App</description>
<accessTokenExpiration>1800</accessTokenExpiration>
<userIdentityRealms>UserAuthRealm</userIdentityRealms>
<pushSender password="*********"/>
<licenseAppType>APPLICATION</licenseAppType>
<targetCategory>B2C</targetCategory>
</nativeIOSApp>
conf / authenticationConfig.xml
<realm name="UserAuthRealm" loginModule="CustomAuthLoginModule">
<className>com.ibm.mfp.CustomUserAuthenticator</className>
</realm>
worklight.properties
mfp.session.independent=true
mfp.attrStore.type=database
Сведения об устройстве
{
"x-wl-clientlog-env":"iOSnative",
"x-wl-clientlog-appversion":"7.0","
"x-wl-clientlog-model":"iPhone8,2",
"x-wl-clientlog-osversion":"12.0",
"x-wl-clientlog-appname":"iOSWLApp"
}
Ответ
{
"error_description":"Client authentication failed",
"error":"invalid_client"
}
Message.log
00002171 com.worklight.core.auth.impl.AuthorizationFilterUtils
E FWLSE0376E: Подписанная JWS подпись ClientId не соответствует идентификатору клиента
0000285b com.worklight.oauth.validation.Validator
I Сбой проверки подлинности OAuthTAI с состоянием = 401, WWW-Authenticate:Область на предъявителя = "imfAuthentication", scope = ""
Trace.log
[27.01.19.19:08:25:434 GST] 0000285b id = com.worklight.oauth.validation.Validator> validate ENTRY
[27.01.19 19: 08: 25: 434 GST] 0000285b id = com.worklight.oauth.validation.Валидатор 1 проверяет пропущенную_авторизациюion
[27.01.19.19: 08: 25: 434 GST] 0000285b id = com.worklight.oauth.validation.Validator I processErrorCode OAuthTAI Проверка подлинности завершилась неудачно с Status = 401, WWW-Authenticate: Область предъявителя = "imfAuthentication", область действия = ""
[27.01.19 19: 08: 25: 434 GST] 0000285b id = com.worklight.adapters.rest.WLShouldCompressPredicat 1 shouldCompressЗапрос: http://localhost:8080/MA/adapters/AccessAdapter/getDetails disableCompressionAttr = null [27.01.19, 19: 08: 25: 434 GST] 0000285b id = com.worklight.adapters.rest.WLShouldCompressPredicat 1 shouldCompress Request: http://localhost:8080/MA/adapters/AccessAdapter/getDetails acceptGZipEncoding =true
[27.01.19.19: 08: 25: 435 GST] 0000285b id = com.worklight.common.util.BaseProjectLocal 1 unset unset ProjectLocal
[27.01.1919: 08: 25: 435 GST] 0000285b id = com.worklight.common.util.BaseProjectLocal 3 unset java.lang.Throwable на com.worklight.common.util.BaseProjectLocal.unset (BaseProjectLocal.java:114) на com.worklight.core.auth.impl.MFPRequestListener.requestDestroyed (MFPRequestListener.java:24)на com.ibm.ws.webcontainer.webapp.WebApp.notifyServletRequestDestroyed (WebApp.java:2747)