def test_good_ticket(self, mock_get): mock_get.return_value.text = GOOD_RESPONSE assert verify_ticket( 'some-ticket', 'https://accounts.ocf.berkeley.edu/', ) == '1034192' called_url = mock_get.call_args[0][0] start = 'https://auth.berkeley.edu/cas/serviceValidate?' assert called_url.startswith(start) params = called_url[len(start):].split('&') assert sorted(params) == [ 'service=https%3A%2F%2Faccounts.ocf.berkeley.edu%2F', 'ticket=some-ticket', ]
def login(request, next_page=None): next_page = request.GET.get(REDIRECT_FIELD_NAME) if not next_page: next_page = _redirect_url(request) if 'calnet_uid' in request.session and request.session['calnet_uid']: return _next_page_response(next_page) ticket = request.GET.get('ticket') service = _service_url(request, next_page) if ticket: verify_result = cas.verify_ticket(ticket, service) verified_uid = int(verify_result) if verify_result else 0 if verified_uid: request.session['calnet_uid'] = verified_uid if 'calnet_uid' in request.session and request.session['calnet_uid']: return _next_page_response(next_page) else: return HttpResponseForbidden( '<h1>Forbidden</h1><p>CalNet login failed.</p>') return HttpResponseRedirect(_login_url(service))
def login(request, next_page=None): next_page = request.GET.get(REDIRECT_FIELD_NAME) if not next_page: next_page = _redirect_url(request) if 'calnet_uid' in request.session and request.session['calnet_uid']: return _next_page_response(next_page) ticket = request.GET.get('ticket') service = _service_url(request, next_page) if ticket: verified_uid = cas.verify_ticket(ticket, service) if verified_uid: request.session['calnet_uid'] = verified_uid if 'calnet_uid' in request.session and request.session['calnet_uid']: return _next_page_response(next_page) else: error = '<h1>Forbidden</h1><p>CalNet login failed.</p>' return HttpResponseForbidden(error) return render_to_response('redirecting_to_calnet.html', { 'calnet_url': _login_url(service) })
def login(request, next_page=None): next_page = request.GET.get(REDIRECT_FIELD_NAME) if not next_page: next_page = _redirect_url(request) if 'calnet_uid' in request.session and request.session['calnet_uid']: return _next_page_response(next_page) ticket = request.GET.get('ticket') service = _service_url(request, next_page) if ticket: verify_result = cas.verify_ticket(ticket, service) verified_uid = int(verify_result) if verify_result else 0 if verified_uid: request.session['calnet_uid'] = verified_uid if 'calnet_uid' in request.session and request.session['calnet_uid']: return _next_page_response(next_page) else: return HttpResponseForbidden( '<h1>Forbidden</h1><p>CalNet login failed.</p>', ) return HttpResponseRedirect(_login_url(service))
def test_bad_ticket(self, response, mock_get): mock_get.return_value.text = response assert verify_ticket( 'some-ticket', 'https://accounts.ocf.berkeley.edu/', ) is None