0001-build-cookies-from-page.cookies-9702.patch
mandayejs/do_login.js | ||
---|---|---|
20 | 20 | |
21 | 21 |
var input = JSON.parse(system.stdin.read(2000)); // no .readAll()... |
22 | 22 | |
23 |
headers_list = [] |
|
24 | ||
25 |
page.onResourceReceived = function(response){ |
|
26 |
for (var i=0; i < response.headers.length; i++){ |
|
27 |
var c_header = response.headers[i]; |
|
28 |
if (c_header['name'] === 'Set-Cookie'){ |
|
29 |
headers_list.push(c_header); |
|
30 |
} |
|
31 |
} |
|
32 |
} |
|
33 | ||
34 | 23 |
page.open(input.address, function() { |
35 | 24 |
page.onLoadFinished = function() { |
36 | 25 |
if (page.injectJs(input.auth_checker)){ |
... | ... | |
44 | 33 |
phantom.exit(); |
45 | 34 |
} |
46 | 35 |
page.render('login.png'); |
47 |
console.log(JSON.stringify({'result': 'ok', 'cookies': page.cookies, 'headers': headers_list, 'url': page.frameUrl}));
|
|
36 |
console.log(JSON.stringify({'result': 'ok', 'cookies': page.cookies, 'url': page.frameUrl})); |
|
48 | 37 |
phantom.exit(); |
49 | 38 |
} |
50 | 39 |
page.evaluate(function(input) { |
mandayejs/mandaye/utils.py | ||
---|---|---|
35 | 35 |
result = json.loads(stdout) |
36 | 36 |
return result |
37 | 37 | |
38 |
def cookie_builder(headers): |
|
39 |
"""Build Cookies from list of headers |
|
40 |
""" |
|
41 |
cookie = SimpleCookie() |
|
42 |
for header in headers: |
|
43 |
cookie.load('; '.join(header.values()).encode('ascii')) |
|
44 | ||
45 |
return cookie |
|
38 |
def cookie_builder(cookies): |
|
39 |
ck = SimpleCookie() |
|
40 |
for cookie in cookies: |
|
41 |
raw_cookie = ';'.join([ |
|
42 |
'{}={}'.format(k,v) for k,v in cookie.items() |
|
43 |
if k not in ('name','value') |
|
44 |
]) |
|
45 |
raw_cookie = '{}={};{}'.format( |
|
46 |
cookie['name'], |
|
47 |
cookie['value'], |
|
48 |
raw_cookie |
|
49 |
) |
|
50 |
ck.load(raw_cookie) |
|
51 |
return ck |
|
46 | 52 | |
47 | 53 |
def get_password_field(): |
48 | 54 |
"""Return name of the password field |
mandayejs/mandaye/views.py | ||
---|---|---|
167 | 167 |
window.top.location = "{{url}}";</script>') |
168 | 168 |
context = RequestContext(request, {'url': url}) |
169 | 169 |
response = HttpResponse(template.render(context)) |
170 |
if result.get('headers',None):
|
|
171 |
response.cookies = cookie_builder(result.get('headers'))
|
|
170 |
if result.get('cookies',None):
|
|
171 |
response.cookies = cookie_builder(result.get('cookies'))
|
|
172 | 172 | |
173 | 173 |
return response |
174 |
- |