Exemplo n.º 1
0
    def _challenge_tokens(self, tokens, affordances):

        tokens = tokens.unfrozen_copy()

        if 'realm' not in tokens:
            tokens['realm'] = iter(affordances.realms).next()

        if 'space_uris' not in tokens:
            space_locs = \
                self.service\
                    .auth_spaces\
                    .locs(self.service.current_request.auth_space)
            tokens['space_uris'] = ' '.join(_percent_encode(loc.pattern)
                                            for loc in space_locs)

        tokens['server_nonce'] = self.new_server_nonce(tokens=tokens,
                                                       affordances=affordances)

        if 'qop' not in tokens:
            if self.phases[0]\
                   ._affordances_require_qop_auth_int_output\
                    (upstream_affordances=affordances):
                tokens['qop'] = 'auth-int'
            elif self.phases[0]\
                     ._affordances_support_qop_auth_int_output\
                      (upstream_affordances=affordances):
                tokens['qop'] = 'auth, auth-int'
            else:
                tokens['qop'] = 'auth'

        if 'digest_algorithm' not in tokens:
            # TODO: support MD5-sess
            tokens['digest_algorithm'] = 'MD5'

        return tokens
Exemplo n.º 2
0
 def _echo_ordered_pathpartargs_path(self):
     return '&'.join(['echo_pathpartargs']
                     + ['{}={}'.format(name,
                                       _percent_encode(_json.dumps(value)))
                        for name, value in self._echo_args_args.items()])
Exemplo n.º 3
0
 def _echo_variadic_pathargs_path(self):
     return '/'.join(['echo_variadic_pathargs']
                     + ['{}_{}'.format(name,
                                       _percent_encode(_json.dumps(value)))
                        for name, value
                        in self._echo_args_args.items()])
Exemplo n.º 4
0
 def _redirect_path(self):
     return 'response;loc={}'\
             .format(_percent_encode(_json.dumps(self._redirect_loc),
                                     safe=''))