Exemple #1
0
 def get_fq_resolver(res):
     fq_resolver = None
     resolvers = getResolverList()
     if res in resolvers:
         match_res = resolvers.get(res)
         fq_resolver = getResolverClassName(match_res['type'],
                                            match_res['resolvername'])
     return fq_resolver
Exemple #2
0
 def get_fq_resolver(res):
     fq_resolver = None
     resolvers = getResolverList()
     if res in resolvers:
         match_res = resolvers.get(res)
         fq_resolver = getResolverClassName(match_res['type'],
                                            match_res['resolvername'])
     return fq_resolver
Exemple #3
0
    def migrate_resolver(self, src=None, target=None, filter_serials=None):
        """
        support the migration of owned tokens from one resolver to a new one

        the idea is:
        - get all tokens from one resolver
        - for each token, the the owner
        - from the owner get the login name
        - with the login name get the uid from the target resolver
        - update the new_id in the token

        """

        _ = context['translate']

        ret = {}

        if not src or not target:
            raise Exception("Missing src or target resolver defintion!")

        audit = context.get('audit')
        now = datetime.now()
        stime = now.strftime("%s")

        audit['action_detail'] = (
            "migration from %s to %s" %
            (src['resolvername'], target['resolvername']))

        ret['src'] = src
        ret['target'] = target
        ret['value'] = False
        ret['message'] = ''

        search = getResolverClassName(src['type'], src['resolvername'])
        target_resolver = getResolverClassName(target['type'],
                                               target['resolvername'])

        # get all tokens of src resolver
        tokens = self._get_tokens_for_resolver(search, serials=filter_serials)

        num_migration = 0
        serials = set()
        for token in tokens:
            serial = token.get('LinOtpTokenSerialnumber')
            userid = token.get('LinOtpUserid')
            resolverC = token.get('LinOtpIdResClass')
            # now do the lookup of the uid in the
            # src resolver to get the login
            uInfo = getUserInfo(userid, '', resolverC)

            login = uInfo.get('username')
            try:
                y = getResolverObject(target_resolver)
                uid = y.getUserId(login)
                if not uid:
                    log.warning("User %s not found in target resolver %r",
                                login, target_resolver)
                    continue

                token.LinOtpIdResClass = target_resolver
                token.LinOtpUserid = uid
                # TODO: adjust
                token.LinOtpIdResolver = target['type']
                Session.add(token)

                num_migration += 1
                serials.add(serial)

            except Exception as exx:
                log.exception(
                    "Faild to set new resolver data for token %s: %r" %
                    (serial, exx))

        ret['value'] = True
        ret['message'] = (_("%d tokens of %d migrated") %
                          (num_migration, len(tokens)))
        log.info(ret['message'])
        audit['info'] = "[%s] %s" % (stime, ret['message'])
        audit['serial'] = ",".join(list(serials))
        audit['success'] = True
        context['audit'] = audit

        return ret
    def migrate_resolver(self, src=None, target=None, filter_serials=None):
        """
        support the migration of owned tokens from one resolver to a new one

        the idea is:
        - get all tokens from one resolver
        - for each token, the the owner
        - from the owner get the login name
        - with the login name get the uid from the target resolver
        - update the new_id in the token

        """

        _ = context['translate']

        ret = {}

        if not src or not target:
            raise Exception("Missing src or target resolver defintion!")

        audit = context.get('audit')
        now = datetime.now()
        stime = now.strftime("%s")

        audit['action_detail'] = ("migration from %s to %s"
                                  % (src['resolvername'],
                                     target['resolvername']))

        ret['src'] = src
        ret['target'] = target
        ret['value'] = False
        ret['message'] = ''

        search = getResolverClassName(src['type'], src['resolvername'])
        target_resolver = getResolverClassName(target['type'],
                                               target['resolvername'])

        # get all tokens of src resolver
        tokens = self._get_tokens_for_resolver(search, serials=filter_serials)

        num_migration = 0
        serials = set()
        for token in tokens:
            serial = token.get('LinOtpTokenSerialnumber')
            userid = token.get('LinOtpUserid')
            resolverC = token.get('LinOtpIdResClass')
            # now do the lookup of the uid in the
            # src resolver to get the login
            uInfo = getUserInfo(userid, '', resolverC)

            login = uInfo.get('username')
            try:
                y = getResolverObject(target_resolver)
                uid = y.getUserId(login)
                if not uid:
                    log.warning("User %s not found in target resolver %r",
                                login, target_resolver)
                    continue

                token.LinOtpIdResClass = target_resolver
                token.LinOtpUserid = uid
                # TODO: adjust
                token.LinOtpIdResolver = target['type']
                Session.add(token)

                num_migration += 1
                serials.add(serial)

            except Exception as exx:
                log.exception("Faild to set new resolver data for token %s: %r"
                              % (serial, exx))

        ret['value'] = True
        ret['message'] = (_("%d tokens of %d migrated")
                            % (num_migration, len(tokens)))
        log.info(ret['message'])
        audit['info'] = "[%s] %s" % (stime, ret['message'])
        audit['serial'] = ",".join(list(serials))
        audit['success'] = True
        context['audit'] = audit

        return ret
Exemple #5
0
    def migrate_resolver(self, src=None, target=None, filter_serials=None):
        """
        support the migration of owned tokens from one resolver to a new one

        the idea is:
        - get all tokens from one resolver
        - for each token, the the owner
        - from the owner get the login name
        - with the login name get the uid from the target resolver
        - update the new_id in the token

        """

        ret = {}

        if not src or not target:
            raise Exception("Missing src or target resolver defintion!")

        now = datetime.now()
        stime = now.strftime("%s")

        g.audit["action_detail"] = "migration from %s to %s" % (
            src["resolvername"],
            target["resolvername"],
        )

        ret["src"] = src
        ret["target"] = target
        ret["value"] = False
        ret["message"] = ""

        search = getResolverClassName(src["type"], src["resolvername"])
        target_resolver = getResolverClassName(target["type"],
                                               target["resolvername"])

        # get all tokens of src resolver
        tokens = self._get_tokens_for_resolver(search, serials=filter_serials)

        num_migration = 0
        serials = set()
        for token in tokens:
            serial = token.get("LinOtpTokenSerialnumber")
            userid = token.get("LinOtpUserid")
            resolverC = token.get("LinOtpIdResClass")
            # now do the lookup of the uid in the
            # src resolver to get the login
            uInfo = getUserInfo(userid, "", resolverC)

            login = uInfo.get("username")
            try:
                y = getResolverObject(target_resolver)
                uid = y.getUserId(login)
                if not uid:
                    log.warning(
                        "User %s not found in target resolver %r",
                        login,
                        target_resolver,
                    )
                    continue

                token.LinOtpIdResClass = target_resolver
                token.LinOtpUserid = uid
                # TODO: adjust
                token.LinOtpIdResolver = target["type"]
                db.session.add(token)

                num_migration += 1
                serials.add(serial)

            except Exception as exx:
                log.error(
                    "Faild to set new resolver data for token %s: %r",
                    serial,
                    exx,
                )

        ret["value"] = True
        ret["message"] = _("%d tokens of %d migrated") % (
            num_migration,
            len(tokens),
        )
        g.audit["info"] = "[%s] %s" % (stime, ret["message"])
        g.audit["serial"] = ",".join(list(serials))
        g.audit["success"] = True

        return ret