用于Android的AD B2C MSAL集成在西班牙语取消配置文件策略时失败

时间:2018-01-31 22:38:06

标签: android azure-ad-b2c msal

此问题适用于使用AD B2C编辑配置文件并与Android MSAL库(com.microsoft.identity.client:msal-0.1.1)一起恢复密码策略的方案。

当使用包含特殊字符(如法语或西班牙语)的语言时,如果用户在密码恢复或编辑配置文件策略中选择“取消”按钮,则应用程序会因URL解码错误而中止。 AD B2C使用代码AADB2C90091发送回标准用户取消错误(这实际上不是错误并且是预期的)。但是,在法语/西班牙语的情况下,URL中有Unicode字符表示无法解码的重音符号等。

这似乎是Android MSAL库中的一个错误,但有没有人有解决方案(除了更改错误消息描述以删除特殊字符)?

西班牙语的错误消息:

java.lang.IllegalArgumentException: Invalid % sequence at 50: AADB2C90091:+El+usuario+ha+cancelado+la+introducci%u00f3n+de+informaci%u00f3n+afirmada+por+%u00e9l+mismo.
              Correlation+ID:+c413b66a-4a69-43d2-8a3c-6111cea7f1b0
              Timestamp:+2018-01-28+20:33:39Z

                  at android.app.ActivityThread.deliverResults(ActivityThread.java:4067)
                  at android.app.ActivityThread.handleSendResult(ActivityThread.java:4110)
                  at android.app.ActivityThread.access$1400(ActivityThread.java:177)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1498)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:145)
                  at android.app.ActivityThread.main(ActivityThread.java:5953)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at java.lang.reflect.Method.invoke(Method.java:372)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
               Caused by: java.lang.IllegalArgumentException: Invalid % sequence at 50: AADB2C90091:+El+usuario+ha+cancelado+la+introducci%u00f3n+de+informaci%u00f3n+afirmada+por+%u00e9l+mismo.
              Correlation+ID:+c413b66a-4a69-43d2-8a3c-6111cea7f1b0
              Timestamp:+2018-01-28+20:33:39Z

                  at libcore.net.UriCodec.decode(UriCodec.java:169)
                  at java.net.URLDecoder.decode(URLDecoder.java:60)
                  at com.microsoft.identity.client.MsalUtils.urlFormDecode(MsalUtils.java:127)
                  at com.microsoft.identity.client.MsalUtils.decodeUrlToMap(MsalUtils.java:298)
                  at com.microsoft.identity.client.AuthorizationResult.parseAuthorizationResponse(AuthorizationResult.java:94)
                  at com.microsoft.identity.client.AuthorizationResult.create(AuthorizationResult.java:72)
                  at com.microsoft.identity.client.InteractiveRequest.onActivityResult(InteractiveRequest.java:157)
                  at com.microsoft.identity.client.PublicClientApplication.handleInteractiveRequestRedirect(PublicClientApplication.java:313)
                  at com.tekmar.msal.TekmarMSAL.onActivityResult(TekmarMSAL.java:200)
                  at org.apache.cordova.CordovaInterfaceImpl.onActivityResult(CordovaInterfaceImpl.java:152)
                  at org.apache.cordova.CordovaActivity.onActivityResult(CordovaActivity.java:358)
                  at android.app.Activity.dispatchActivityResult(Activity.java:6549)
                  at android.app.ActivityThread.deliverResults(ActivityThread.java:4063)

0 个答案:

没有答案