docs: @GetMapping(produces = MediaType.APPLICATION_XML_VALUE)
      @ResponseBody
      public ResponseEntity<Object> produce(final HttpServletRequest request, final HttpServletResponse response) {
          val username = request.getParameter("username");
          val password = request.getParameter("password");
          val entityId = request.getParameter(SamlProtocolConstants.PARAMETER_ENTITY_ID);
  
          try {
              val selectedService = this.serviceFactory.createService(entityId);
              val registeredService = this.servicesManager.findServiceBy(selectedService, SamlRegisteredService.class);
              RegisteredServiceAccessStrategyUtils.ensureServiceAccessIsAllowed(registeredService);
  
              val assertion = getAssertion(username, password, entityId);
              val authnRequest = new AuthnRequestBuilder().buildObject();
              authnRequest.setIssuer(saml20ObjectBuilder.newIssuer(entityId));
  
              val adaptorResult = SamlRegisteredServiceServiceProviderMetadataFacade.get(defaultSamlRegisteredServiceCachingMetadataResolver,
                  registeredService, entityId);
              if (adaptorResult.isPresent()) {
                  val adaptor = adaptorResult.get();
                  val messageContext = new MessageContext<>();
                  val scratch = messageContext.getSubcontext(ScratchContext.class, true);
                  scratch.getMap().put(SamlProtocolConstants.PARAMETER_ENCODE_RESPONSE, Boolean.FALSE);
  
                  val object = this.responseBuilder.build(authnRequest, request, response, assertion,
                      registeredService, adaptor, SAMLConstants.SAML2_POST_BINDING_URI, messageContext);
                  val encoded = SamlUtils.transformSamlObject(saml20ObjectBuilder.getOpenSamlConfigBean(), object).toString();
                  return new ResponseEntity<>(encoded, HttpStatus.OK);
              }
          } catch (final Exception e) {
              LOGGER.error(e.getMessage(), e);
              return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
          }
          return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
      }