docs: @Override
      public void init(final FilterConfig filterConfig) throws ServletException {
  
          // verify there are no init parameters configured that are not recognized
          // since an unrecognized init param might be the adopter trying to configure this filter in
          // an important way
          // and accidentally ignoring that intent might have security implications.
          final Enumeration initParamNames = filterConfig.getInitParameterNames();
          throwIfUnrecognizedParamName(initParamNames);
  
          final String initParamAllowMultiValuedParameters =
                  filterConfig.getInitParameter(ALLOW_MULTI_VALUED_PARAMETERS);
          final String initParamParametersToCheck =
                  filterConfig.getInitParameter(PARAMETERS_TO_CHECK);
          final String initParamCharactersToForbid =
                  filterConfig.getInitParameter(CHARACTERS_TO_FORBID);
  
          try {
              this.allowMultiValueParameters =
                      parseStringToBooleanDefaultingToFalse(initParamAllowMultiValuedParameters);
          } catch (final Exception e) {
              throw new ServletException(
                      "Error parsing request parameter ["
                              + ALLOW_MULTI_VALUED_PARAMETERS
                              + "] with value ["
                              + initParamAllowMultiValuedParameters
                              + "]",
                      e);
          }
  
          try {
              this.parametersToCheck = parseParametersToCheck(initParamParametersToCheck);
          } catch (final Exception e) {
              throw new ServletException(
                      "Error parsing request parameter "
                              + PARAMETERS_TO_CHECK
                              + " with value ["
                              + initParamParametersToCheck
                              + "]",
                      e);
          }
  
          try {
              this.charactersToForbid = parseCharactersToForbid(initParamCharactersToForbid);
          } catch (final Exception e) {
              throw new ServletException(
                      "Error parsing request parameter "
                              + CHARACTERS_TO_FORBID
                              + " with value ["
                              + initParamCharactersToForbid
                              + "]",
                      e);
          }
  
          if (this.allowMultiValueParameters && this.charactersToForbid.isEmpty()) {
              throw new ServletException(
                      "Configuration to allow multi-value parameters and forbid no characters makes "
                              + getClass().getSimpleName()
                              + " a no-op, which is probably not what you want, "
                              + "so failing Filter init.");
          }
      }