python urllib.parse.quote_Python urlparse.quote方法代码示例

# 需要导入模块: import urlparse [as 别名]

# 或者: from urlparse import quote [as 别名]

def __init__(self, proxy_type, proxy_server_address):

pwd = ""

if State.username:

key = State.username

if State.domain != "":

key = State.domain + "\\" + State.username

pwd = keyring.get_password("Px", key)

if proxy_type == "NTLM":

if not pwd:

self.ctx = sspi.ClientAuth("NTLM",

os.environ.get("USERNAME"), scflags=0)

self.get_response = self.get_response_sspi

else:

self.ctx = ntlm_auth.ntlm.NtlmContext(

State.username, pwd, State.domain, "", ntlm_compatibility=3)

self.get_response = self.get_response_ntlm

elif proxy_type == "BASIC":

if not State.username:

dprint("No username configured for Basic authentication")

elif not pwd:

dprint("No password configured for Basic authentication")

else:

# Colons are forbidden in usernames and passwords for basic auth

# but since this can happen very easily, we make a special check

# just for colons so people immediately understand that and don't

# have to look up other resources.

if ":" in State.username or ":" in pwd:

dprint("Credentials contain invalid colon character")

else:

# Additionally check for invalid control characters as per

# RFC5234 Appendix B.1 (section CTL)

illegal_control_characters = "".join(

chr(i) for i in range(0x20)) + "\u007F"

if any(char in State.username or char in pwd

for char in illegal_control_characters):

dprint("Credentials contain invalid characters: %s" % ", ".join("0x" + "%x" % ord(char) for char in illegal_control_characters))

else:

# Remove newline appended by base64 function

self.ctx = b64encode(

"%s:%s" % (State.username, pwd))[:-1].decode()

self.get_response = self.get_response_basic

else:

principal = None

if pwd:

if State.domain:

principal = (urlparse.quote(State.username) + "@" +

urlparse.quote(State.domain) + ":" + urlparse.quote(pwd))

else:

principal = (urlparse.quote(State.username) + ":" +

urlparse.quote(pwd))

_, self.ctx = winkerberos.authGSSClientInit("HTTP@" +

proxy_server_address, principal=principal, gssflags=0,

mech_oid=winkerberos.GSS_MECH_OID_SPNEGO)

self.get_response = self.get_response_wkb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值