def clean(self): default_domain = getattr(settings, 'OPENSTACK_KEYSTONE_DEFAULT_DOMAIN', 'Default') username = self.cleaned_data.get('username') password = self.cleaned_data.get('password') region = self.cleaned_data.get('region') domain = self.cleaned_data.get('domain', default_domain) if not (username and password): # Don't authenticate, just let the other validators handle it. return self.cleaned_data try: self.user_cache = authenticate(request=self.request, username=username, password=password, user_domain_name=domain, auth_url=region) LOG.info('Login successful for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s.', {'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request)}) except exceptions.KeystoneAuthException as exc: LOG.info('Login failed for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s.', {'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request)}) raise forms.ValidationError(exc) if hasattr(self, 'check_for_test_cookie'): # Dropped in django 1.7 self.check_for_test_cookie() return self.cleaned_data
def clean(self): default_domain = getattr(settings, 'OPENSTACK_KEYSTONE_DEFAULT_DOMAIN', 'Default') username = self.cleaned_data.get('username') password = self.cleaned_data.get('password') region = self.cleaned_data.get('region') domain = self.cleaned_data.get('domain', default_domain) if not (username and password): # Don't authenticate, just let the other validators handle it. return self.cleaned_data try: self.user_cache = authenticate(request=self.request, username=username, password=password, user_domain_name=domain, auth_url=region) LOG.info('Login successful for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s.', {'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request)}) except exceptions.KeystoneAuthException as exc: LOG.info('Login failed for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s.', {'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request)}) raise forms.ValidationError(exc) if hasattr(self, 'check_for_test_cookie'): # Dropped in django 1.7 self.check_for_test_cookie() return self.cleaned_data
def clean(self): default_domain = settings.OPENSTACK_KEYSTONE_DEFAULT_DOMAIN username = self.cleaned_data.get('username') password = self.cleaned_data.get('password') totp = self.cleaned_data.get('totp') domain = self.cleaned_data.get('domain', default_domain) region_id = self.cleaned_data.get('region') try: region = get_region_endpoint(region_id) except (ValueError, IndexError, TypeError): raise forms.ValidationError("Invalid region %r" % region_id) self.cleaned_data['region'] = region if not (username and password): # Don't authenticate, just let the other validators handle it. return self.cleaned_data try: self.user_cache = authenticate(request=self.request, username=username, password=password, totp=totp, user_domain_name=domain, auth_url=region) LOG.info( 'Login successful for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s.', { 'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request) }) except exceptions.KeystonePassExpiredException as exc: LOG.info( 'Login failed for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s: password' ' expired.', { 'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request) }) if utils.allow_expired_passowrd_change(): raise raise forms.ValidationError(exc) except exceptions.KeystoneAuthException as exc: LOG.info( 'Login failed for user "%(username)s" using domain ' '"%(domain)s", remote address %(remote_ip)s.', { 'username': username, 'domain': domain, 'remote_ip': utils.get_client_ip(self.request) }) raise forms.ValidationError(exc) return self.cleaned_data
def test_with_settings_with_proxy_real_ip(self): from openstack_auth.utils import get_client_ip self.request.META['REMOTE_ADDR'] = '10.111.111.2' self.request.META['HTTP_X_REAL_IP'] = '192.168.15.33' self.request.META['HTTP_X_FORWARDED_FOR'] = '172.18.0.2' self.assertEqual('192.168.15.33', get_client_ip(self.request))
def test_with_settings_without_proxy(self): from openstack_auth.utils import get_client_ip self.request.META['REMOTE_ADDR'] = '10.111.111.2' self.assertEqual('10.111.111.2', get_client_ip(self.request))
def test_with_settings_without_proxy(self): from openstack_auth.utils import get_client_ip self.request.META['REMOTE_ADDR'] = '10.111.111.2' self.assertEqual('10.111.111.2', get_client_ip(self.request))
def test_with_proxy_no_settings(self): from openstack_auth.utils import get_client_ip self.request.META['REMOTE_ADDR'] = '10.111.111.2' self.request.META['HTTP_X_REAL_IP'] = '192.168.15.33' self.request.META['HTTP_X_FORWARDED_FOR'] = '172.18.0.2' self.assertEqual('10.111.111.2', get_client_ip(self.request))
def test_with_settings_with_proxy_forwardfor(self): from openstack_auth.utils import get_client_ip self.request.META['REMOTE_ADDR'] = '10.111.111.2' self.request.META['HTTP_X_FORWARDED_FOR'] = '172.18.0.2' self.assertEqual('172.18.0.2', get_client_ip(self.request))