code: @Override
      public ThreadContext createDefaultThreadContext(Map<String, String> execProps) {
          String identityName = execProps.get(WSContextService.TASK_OWNER);
          SecurityContext defaultCtx = new SecurityContext() {
              private static final long serialVersionUID = 1924323423421234352L;
  
              @Override
              public void setupSecurityContext(CallbackHandler arg0, Subject arg1, Subject arg2) {
                  // do nothing and instead use the default subjects passed in by the application server.
              }
          };
          CredentialsService credService = (CredentialsService) credServiceRef.getServiceWithException();
          WSSecurityService wss = (WSSecurityService) securityServiceRef.getServiceWithException();
          UnauthenticatedSubjectService unauthSubjService = (UnauthenticatedSubjectService) unauthSubjectServiceRef.getServiceWithException();
          AuthenticationService authService = (AuthenticationService) authServiceRef.getServiceWithException();
          return new SecurityInflowContext(credService, wss, unauthSubjService, authService, defaultCtx, identityName);
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.wsspi.threadcontext.ThreadContextProvider#getDefaultThreadContext(java.util.Map)