IBM Worklight:AdapterAuthRealmChallengeHandler.submitSuccess() 生成无效的 http 标头
Posted
技术标签:
【中文标题】IBM Worklight:AdapterAuthRealmChallengeHandler.submitSuccess() 生成无效的 http 标头【英文标题】:IBM Worklight: AdapterAuthRealmChallengeHandler.submitSuccess() generates invalid http header 【发布时间】:2014-09-16 19:53:03 【问题描述】:在以前正常工作的开发中。升级到 Chrome 37.0.2062.120 后 WL 6.1.0.01.20140311-2356 的环境现在在身份验证期间调用 submitSuccess 时出现以下错误。
Chrome 浏览器日志:
未捕获的 SyntaxError: 无法执行 'setRequestHeader' on 'XMLHttpRequest': '"wl_deviceNoProvisioningRealm":"ID":"token":"pg8cd4gnjh1kb0sjko6h1chqr4","app":"id":"Moje ČZU","version":"1.0","device":"id":"previewDummyId","os":"previewDummyOS","model":"previewDummyModel","environment":"preview", “风俗”:' 不是有效的 HTTP 标头字段值。
WL 服务器日志:
SRVE0777E: 应用程序类抛出异常 'com.worklight.core.auth.impl.AuthenticationContext.pushCurrentResource:398' com.worklight.server.auth.api.WorkLightAuthenticationException 在 com.worklight.core.auth.impl.AuthenticationContext.pushCurrentResource(AuthenticationContext.java:398) 在 com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:75) 在 com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedureInternal(DataAccessServiceImpl.java:389) 在 com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedure(DataAccessServiceImpl.java:112) 在 com.worklight.gadgets.serving.handler.BackendQueryHandler.getContent(BackendQueryHandler.java:182) 在 com.worklight.gadgets.serving.handler.BackendQueryHandler.doPost(BackendQueryHandler.java:73) 在 com.worklight.gadgets.serving.GadgetAPIServlet.doGetOrPost(GadgetAPIServlet.java:141) 在 com.worklight.gadgets.serving.GadgetAPIServlet.doPost(GadgetAPIServlet.java:103) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:595) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1240) 在 [内部课程] 在 com.worklight.core.auth.impl.AuthenticationFilter$1.execute(AuthenticationFilter.java:191) 在 com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:76) 在 com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:195) 在 com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:194) 在[内部课程]
不确定此处的“Moje ĆZU”latin2 字符是否不会导致问题?
身份验证过程中的先前步骤看起来工作正常。 Firefox 和 Opera 也卡住了,但行为不同。
但是,当应用部署到 android 设备时,应用仍然可以正常工作。
【问题讨论】:
【参考方案1】:这看起来像an encoding issue。
第一次生成应用时,application-descriptor.xml中的application id
值是根据选择的应用名称生成的;然后,您可以将其更改为您想要的任何其他内容。
但请注意,在添加移动环境时也会使用相同的值,因此如果您在创建移动环境(将具有“native”文件夹)之后更改该值,则需要删除该本机文件夹可以正确重新生成所有工件。或者,查找所有/替换并验证一切正常。
在 application-descriptor.xml 中更改此值后,Worklight 不会自动替换它。
【讨论】:
以上是关于IBM Worklight:AdapterAuthRealmChallengeHandler.submitSuccess() 生成无效的 http 标头的主要内容,如果未能解决你的问题,请参考以下文章
IBM Worklight - 啥是 Worklight 服务器?
IBM Worklight 6.0 - 添加 Worklight 文件条目选项时遇到问题
IBM Worklight - 如何将 Worklight 代码导入 Eclipse?