ວິເຄາະ Proxy-Authorization ໃນ Go forward proxy
ວິເຄາະ Proxy-Authorization ແຍກຕ່າງຫາກໃນ Go forward proxy ພ້ອມຮັກສາ Authorization header ຂອງຕົ້ນກຳເນີດ.
ໃນ 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 ນີ້ໂດຍບັງເອີນ.