Change Guardian CAF console producing rpc error

  • 7025197
  • 16-Jul-2021
  • 09-Aug-2021

Environment

Change Guardian 5.2
Change Guardian 6.0
Change Guardian 6.1

Situation

In some CG appliance environments, a RPC Communication error shows, opening CAF console, when selecting:
- Digital Certificates
- System Services
- Product or Online Upgrade


****output******
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Type 'com.google.gwt.user.client.rpc.XsrfToken' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialized.


Resolution

One step before following below instructions, you need to take a backup of root.war file. And only then follow the steps as mentioned.


1. Goto this folder:
cd /opt/novell/common-service/webapps

2. Extract root.war file:
jar xvf root.war

3. Edit the BaseTemplate.jsp file:

vi WEB-INF/jsp/BaseTemplate.jsp
Add the following lines
<meta name="gwtCsrfName" content="${_csrf.parameterName}" />
<meta name="gwtCsrfToken" content="${_csrf.token}" />

After adding the GwtModule section should be like this:

<%-- GWT module, included when a gwtPresenter is provided in the tiles config file.
This will cause a client-side Presenter class (annotated with @NameToken("GWT_PRESENTER_NAME") to be called. --%>
<tiles:useAttribute id="gwtPresenter" name="gwtPresenter" />
<c:if test="${!empty gwtPresenter}"><!-- GWT Module -->
<meta name="gwt:property" content="locale=en" /> <%-- TODO: Determine this at runtime --%>
<meta name="gwtPresenter" content="${gwtPresenter}" />
<meta name="gwtCsrfName" content="${_csrf.parameterName}" />
<meta name="gwtCsrfToken" content="${_csrf.token}" />
<script type="text/javascript" language="javascript" src="${ctxPath}/resources/gwt/GwtModule/GwtModule.nocache.js"></script>
<!-- / GWT Module -->
</c:if>

4. Recreate root.war file:
jar cvf root.war META-INF WEB-INF resources

5. Restart following services:
systemctl restart vabase-datamodel
systemctl restart vabase-jetty.service
systemctl restart vabase.service

6. Check all the service status:
systemctl status vabase-datamodel.service vabase-jetty.service vabase.service

7. Clear the browser cache and cookies, and login.

Cause

Incomplete upgrade caused some lines to be missing in this file:
BaseTemplate.jsp file.

The CSRF token management was not present in webserver\9443.

We have included these changes in CG, and 6.2.0.0 ongoing release.

Status

Reported to Engineering

Additional Information

The jetty.stderrout.out shows an error, example:
WARN:oejshC.root:qtp104739310-52: spring: An IncompatibleRemoteServiceException was thrown while processing this call.
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Type 'com.google.gwt.user.client.rpc.XsrfToken' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialized.
   at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:323)