ໃນ Go forward proxy, r.BasicAuth ອ່ານ Authorization header ເຊິ່ງເປັນຂອງການເຂົ້າສູ່ເວັບໄຊປາຍທາງ. ຂໍ້ມູນຢືນຢັນຂອງ proxy ເອງມາໃນ Proxy-Authorization.

ອະແດັບເຕີນ້ອຍໆສາມາດໃຊ້ parser ສາທາລະນະຄືນໄດ້ໂດຍບໍ່ປ່ຽນຄຳຮ້ອງເດີມ:

func proxyBasicAuth(r *http.Request) (string, string, bool) {
    headers := make(http.Header)
    headers.Set("Authorization", r.Header.Get("Proxy-Authorization"))
    return (&http.Request{Header: headers}).BasicAuth()
}

ສ່ວນນີ້ໃຊ້ net/http. ມັນສົ່ງຄືນຄ່າທີ່ວິເຄາະແລ້ວ ແລະ ສັນຍານຄວາມສຳເລັດຂອງການວິເຄາະ; ມັນບໍ່ຢືນຢັນບັນຊີ. ສົ່ງຜົນໄປຫາຕົວກວດສອບຂໍ້ມູນຢືນຢັນທີ່ proxy ກຳນົດໄວ້.

ຖ້າການຢືນຢັນລົ້ມເຫຼວ ໃຫ້ສົ່ງຄືນ 407 ພ້ອມ Proxy-Authenticate challenge ທີ່ເໝາະສົມ ແລະ ຢຸດປະມວນຜົນຄຳຮ້ອງນັ້ນ. ຢືນຢັນກ່ອນເປີດການເຊື່ອມຕໍ່ໄປປາຍທາງ ຫຼື ກ່ອນຮັບ CONNECT tunnel.

ຫຼັງຈາກຮັບຂໍ້ມູນຢືນຢັນແລ້ວ ໃຫ້ໃຊ້ Proxy-Authorization header ຂອງ proxy ເອງກ່ອນການສົ່ງຕໍ່ປົກກະຕິ. ຮັກສາ Authorization field ເດີມໄວ້ສຳລັບຕົ້ນກຳເນີດ. ຖ້າມີ parent proxy ຢູ່ເໜືອ ມັນຕ້ອງການການຈັດການຢືນຢັນຂອງຕົນເອງຢ່າງຕັ້ງໃຈ ບໍ່ແມ່ນຮັບຂໍ້ມູນຢືນຢັນຂອງ client ນີ້ໂດຍບັງເອີນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ