混合应用程序中基于IBM MobileFirst Adapter的身份验证。服务器将UserIdentity对象发送给客户端

时间:2016-01-05 10:41:07

标签: ibm-mobilefirst mobilefirst-adapters mobilefirst-server

从这里取样: https://github.com/MobileFirst-Platform-Developer-Center/AdapterBasedAuth

mfp -v:7.1.0.00.20151219-1541

当身份验证成功时,我得到此回复 enter image description here

如您所见,服务器将UserIdentity对象发送给客户端。

我的UserIdentity对象存储我从后端获得的其他ID密钥,用于通过适配器访问后端。当WL服务器识别用户时,我可以从UserIdentity(WL.Server.getActiveUser)获取这些密钥,然后转到后端获取数据。我需要这些密钥留在WL服务器上。

如何停止服务器发送UserIdentity对象。

2 个答案:

答案 0 :(得分:0)

我有同样的问题。但是,由于UserEntity是不可变的,我认为该对象不负责存储用户数据以便在服务器中使用"。

我找到的解决方案是在CustomeLoginAuthenticator / CustomLoginModule中使用HttpSession。我设置" loggedUser"会话和适配器/资源中的属性我得到它:

@Context HttpSession session;

但是,在mobilefirst 7.1之后,它是不值得推荐的。您可以使用memchached,cloudant或其他类似存储用户记录的数据。

更多细节: http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.dev.doc/devref/c_java_server_side_api.html%23java_server_side_api__java_rest?lang=pt-br

答案 1 :(得分:0)

我已经得到了PMR对这个问题的回应。

  

PMR中描述的行为是预期的行为。   避免这种情况的唯一方法是不在UserIdentity属性中保存私有数据。 UserIdentity旨在在客户端和服务器之间共享。

     

或者,您可以使用clientId变量将敏感数据保存在数据库中。您可以在两步适配器身份验证教程中找到有关如何执行此操作的示例。

     

您可以打开功能请求,但请注意此行为是设计使然。

所以问题已经结束