MCPcopy
hub / github.com/mitmproxy/mitmproxy / parse_spec

Method parse_spec

mitmproxy/addons/proxyauth.py:239–282  ·  view source on GitHub ↗
(spec: str)

Source from the content-addressed store, hash-verified

237
238 @staticmethod
239 def parse_spec(spec: str) -> tuple[bool, str, int | None, str, str, str, str]:
240 try:
241 if spec.count(":") > 4:
242 (
243 security,
244 url,
245 port_str,
246 ldap_user,
247 ldap_pass,
248 dn_subtree,
249 ) = spec.split(":")
250 port = int(port_str)
251 else:
252 security, url, ldap_user, ldap_pass, dn_subtree = spec.split(":")
253 port = None
254
255 if "?" in dn_subtree:
256 dn_subtree, search_str = dn_subtree.split("?")
257 key, value = search_str.split("=")
258 if key == "search_filter_key":
259 search_filter_key = value
260 else:
261 raise ValueError
262 else:
263 search_filter_key = "cn"
264
265 if security == "ldaps":
266 use_ssl = True
267 elif security == "ldap":
268 use_ssl = False
269 else:
270 raise ValueError
271
272 return (
273 use_ssl,
274 url,
275 port,
276 ldap_user,
277 ldap_pass,
278 dn_subtree,
279 search_filter_key,
280 )
281 except ValueError:
282 raise exceptions.OptionsError(f"Invalid LDAP specification: {spec}")
283
284 def make_search_filter(self, username: str) -> str:
285 username = ldap3.utils.conv.escape_filter_chars(username)

Callers 2

__init__Method · 0.95
test_parse_spec_errFunction · 0.80

Calls 2

countMethod · 0.45
splitMethod · 0.45

Tested by 1

test_parse_spec_errFunction · 0.64