def _bonafide_auth(self, user, password):
     srp_provider = Api(self._leap_provider.api_uri)
     credentials = Credentials(user, password)
     self.bonafide_session = Session(credentials, srp_provider,
                                     self._leap_provider.local_ca_crt)
     yield self.bonafide_session.authenticate()
     returnValue(
         Authentication(user, self.bonafide_session.token,
                        self.bonafide_session.uuid, 'session_id',
                        {'is_admin': False}))
Esempio n. 2
0
    def _get_session(self, provider, full_id, password=""):
        if full_id in self._sessions:
            return self._sessions[full_id]

        # TODO if password/username null, then pass AnonymousCreds
        username, provider_id = config.get_username_and_provider(full_id)
        credentials = UsernamePassword(username, password)
        api = self._get_api(provider)
        provider_pem = _get_provider_ca_path(provider_id)
        session = Session(credentials, api, provider_pem)
        self._sessions[full_id] = session
        return session
Esempio n. 3
0
 def _get_or_create_session(self, provider, full_id, password=""):
     if full_id in self._sessions:
         return self._sessions[full_id]
     if full_id == ANONYMOUS:
         credentials = Anonymous()
         provider_id = provider.domain
     else:
         username, provider_id = config.get_username_and_provider(full_id)
         credentials = UsernamePassword(username, password)
     api = self._get_api(provider)
     provider_pem = config.get_ca_cert_path(_preffix, provider_id)
     session = Session(credentials, api, provider_pem)
     self._sessions[full_id] = session
     return session
Esempio n. 4
0
    def _get_config_for_all_services(self, session):
        if session is None:
            provider_cert = self._get_ca_cert_path()
            session = Session(Anonymous(), self.api_uri, provider_cert)

        services_dict = self._load_provider_configs()
        configs_path = self._get_configs_path()
        with open(configs_path) as jsonf:
            services_dict = Record(**json.load(jsonf)).services
        pending = []
        base = self._disco.get_base_uri()
        for service in self._provider_config.services:
            if service in self.SERVICES_MAP.keys():
                for subservice in self.SERVICES_MAP[service]:
                    uri = base + str(services_dict[subservice])
                    path = self._get_service_config_path(subservice)
                    d = session.fetch_provider_configs(uri, path, method='GET')
                    pending.append(d)
        return defer.gatherResults(pending)
Esempio n. 5
0
    def test_recovery_code_creation(self, mock_http_request, mock_cookie_agent,
                                    mock_is_authenticated):
        api = Api('https://api.test:4430')
        credentials = UsernamePassword('username', 'password')

        mock_is_authenticated.return_value = True
        session = Session(credentials, api, 'fake path')
        session._uuid = '123'

        response = yield session.update_recovery_code('RECOVERY_CODE')
        mock_http_request.assert_called_with(
            ANY,
            'https://api.test:4430/1/users/123',
            method='PUT',
            token=None,
            values={
                'user[recovery_code_salt]': ANY,
                'user[recovery_code_verifier]': ANY
            })
Esempio n. 6
0
def _bonafide_session(username, password, provider):
    srp_provider = Api(provider.api_uri)
    credentials = Credentials(username, password)
    return Session(credentials, srp_provider, provider.local_ca_crt)
Esempio n. 7
0
def _get_leap_session(credentials):
    session = Session(credentials)
    d = session.authenticate()
    d.addCallback(lambda _: session)
    return d