docs: public void logout(HttpServletRequest req, HttpServletResponse res, WebAppSecurityConfig config) throws ServletException {
          // logout when the unprotectedResourceService(s) do
          logoutUnprotectedResourceServiceRef(req, res);
          createSubjectAndPushItOnThreadAsNeeded(req, res);
  
          AuthenticationResult authResult = new AuthenticationResult(AuthResult.SUCCESS, subjectManager.getCallerSubject());
          JaspiService jaspiService = getJaspiService();
          if (jaspiService == null) {
              authResult.setAuditCredType(req.getAuthType());
              authResult.setAuditOutcome(AuditEvent.OUTCOME_SUCCESS);
              Audit.audit(Audit.EventID.SECURITY_API_AUTHN_TERMINATE_01, req, authResult, Integer.valueOf(res.getStatus()));
          }
  
          removeEntryFromAuthCache(req, res, config);
          invalidateSession(req);
          ssoCookieHelper.removeSSOCookieFromResponse(res);
          ssoCookieHelper.createLogoutCookies(req, res);
  
          try {
              if (unauthenticatedSubjectService != null) {
                  ThreadIdentityManager.setAppThreadIdentity(unauthenticatedSubjectService.getUnauthenticatedSubject());
              }
  
          } catch (ThreadIdentityException e) {
              //FFDC will be generated
          }
  
          //If authenticated with form login, we need to clear the RefrrerURLCookie
          ReferrerURLCookieHandler referrerURLHandler = config.createReferrerURLCookieHandler();
          referrerURLHandler.clearReferrerURLCookie(req, res, ReferrerURLCookieHandler.REFERRER_URL_COOKIENAME);
          SRTServletRequestUtils.removePrivateAttribute(req, "AUTH_TYPE");
          postLogout(req, res);
          subjectManager.clearSubjects();
  
      }