code: def read_authentication_config (self):
          
          section = "authentication"
          password_fields = []
          if self.has_option(section, "entry"):
              for val in read_multiline(self.get(section, "entry")):
                  auth = val.split()
                  if len(auth) == 3:
                      self.config.add_auth(pattern=auth[0], user=auth[1],
                                           password=auth[2])
                      password_fields.append("entry/%s/%s" % (auth[0], auth[1]))
                  elif len(auth) == 2:
                      self.config.add_auth(pattern=auth[0], user=auth[1])
                  else:
                      raise LinkCheckerError(
                         _("missing auth part in entry %(val)r") % {"val": val})
          # read login URL and field names
          if self.has_option(section, "loginurl"):
              val = self.get(section, "loginurl").strip()
              if not (val.lower().startswith("http:") or
                      val.lower().startswith("https:")):
                  raise LinkCheckerError(_("invalid login URL `%s'. Only " \
                    "HTTP and HTTPS URLs are supported.") % val)
              self.config["loginurl"] = val
          self.read_string_option(section, "loginuserfield")
          self.read_string_option(section, "loginpasswordfield")
          # read login extra fields
          if self.has_option(section, "loginextrafields"):
              for val in read_multiline(self.get(section, "loginextrafields")):
                  name, value = val.split(":", 1)
                  self.config["loginextrafields"][name] = value
          self.check_password_readable(section, password_fields)
docs: Read configuration options in section "authentication".