docs: private String getProxyTicket(PortletRequest request) {
  
          final HttpServletRequest httpServletRequest =
                  this.portalRequestUtils.getPortletHttpRequest(request);
  
          // try to determine the URL for our portlet
          String targetService = null;
          try {
              URL url = null;
  
              // if the server port is 80 or 443, don't include it in the URL
              int port = request.getServerPort();
              if (port == 80 || port == 443)
                  url =
                          new URL(
                                  request.getScheme(),
                                  request.getServerName(),
                                  request.getContextPath());
              else
                  url =
                          new URL(
                                  request.getScheme(),
                                  request.getServerName(),
                                  request.getServerPort(),
                                  request.getContextPath());
              targetService = url.toString();
  
          } catch (MalformedURLException e) {
              log.error("Failed to create a URL for the target portlet", e);
              e.printStackTrace();
              return null;
          }
  
          // get the CasSecurityContext
          final IUserInstance userInstance = userInstanceManager.getUserInstance(httpServletRequest);
          final IPerson person = userInstance.getPerson();
          final ISecurityContext context = person.getSecurityContext();
          if (context == null) {
              log.error("no security context, no proxy ticket passed to the portlet");
              return null;
          }
          ISecurityContext casContext = getCasContext(context);
          if (casContext == null) {
              log.debug("no CAS security context, no proxy ticket passed to the portlet");
              return null;
          }
          if (!casContext.isAuthenticated()) {
              log.debug("no CAS authentication, no proxy ticket passed to the portlet");
              return null;
          }
  
          // get a proxy ticket for our portlet from the CasSecurityContext
          String proxyTicket = null;
          try {
              proxyTicket = ((ICasSecurityContext) casContext).getCasServiceToken(targetService);
              log.debug("Put proxy ticket in userinfo: " + proxyTicket);
          } catch (CasProxyTicketAcquisitionException e) {
              log.error("no proxy ticket passed to the portlet: " + e);
          }
  
          return proxyTicket;
      }