Worklight: WL.Server.setActiveUser - No se puede modificar - Estado ilegal: No se puede cambiar la identidad

Estoy tratando de modificar la identidad del usuario registrado,

var mydata="this is custom data array";

var user = JSON.parse(JSON.stringify(WL.Server.getActiveUser()));
           WL.Logger.debug("Before Update" + user.attributes);
           WL.Logger.debug(" displayName =" + user.displayName );
           WL.Logger.debug("isUserAuthenticated ="+ user.isUserAuthenticated );
           WL.Logger.debug("userId =" + user.userId );

          WL.Server.setActiveUser ("myAppRealm" ,{    userId: user.userId ,
               displayName: user.displayName,
               isUserAuthenticated: user.isUserAuthenticated,
               attributes: {  userdata: mydata   }
           } );
           WL.Logger.debug(" ---- Updateed user ---- "  );
           var user = JSON.parse(JSON.stringify(WL.Server.getActiveUser())); 

pero esdando a continuación la excepción.

response [/apps/services/api/myApp/common/query] success: /*-secure-
{"isSuccessful":false,"warnings":[],"errors":["Illegal State: Cannot change identity of an already logged in user in realm 'myAppRealm'. The application must logout first."],"responseID":"67","info":[]}*/ worklight.js:1097
Procedure invocation error. Illegal State: Cannot change identity of an already logged in user in realm 'myAppRealm'. The application must logout first. 

¿Cómo puedo modificar esto?

Editar:

@Xv. Bueno, esa vez tuve el requisito de guardar algunos valores en el objeto de sesión de un usuario. Para eso, primero intenté modificar el objeto del usuario como se mencionó anteriormente, pero luego encontré las API mencionadas más abajo que ayudan a recuperar, modificar o agregar valores en un objeto de sesión.

WL 6.3 documentos:

API del lado del servidor MobileFirst> API del lado del servidor JavaScript> Clases> WL.Server

Accediendo a un objeto HttpServletRequest.

WL.Server.getClientRequest

Esto le da acceso directo aHttpServletRequest Objeto y luego puede usar todos sus métodos como lo haría en las aplicaciones JEE.

Por ejemplo:

WL.Server.getClientRequest (). GetSession (). GetAttribute ("mykey") WL.Server.getClientRequest (). GetSession (). SetAttribute ("mykey", mioj

Respuestas a la pregunta(1)

Su respuesta a la pregunta