Beispiel #1
0
    def __before__(self, action, **params):

        log.debug("[__before__::%r]" % (action))
        valid_request = False
        try:
            for key, value in params.items():
                log.debug("[__before__::%r:%r]" % (key, value))

            audit.initialize()
            c.audit['client'] = get_client()

            self.storage = config.get('openid_sql')

            getCookieExpire = int(config.get("linotpOpenID.CookieExpire", -1))

            self.COOKIE_EXPIRE = 3600
            if getCookieExpire >= 0:
                self.COOKIE_EXPIRE = getCookieExpire

            c.logged_in = False
            c.login = ""
            c.version = get_version()
            c.licenseinfo = get_copyright_info()

            http_host = request.environ.get("HTTP_HOST")
            log.debug("[__before__] Doing openid request from host %s" %
                      http_host)
            if not is_valid_fqdn(http_host, split_port=True):
                err = "Bad hostname: %s" % http_host
                audit.log(c.audit)
                c.audit["action_detail"] = err
                log.error(err)
                raise HTTPBadRequest(err)

            self.BASEURL = request.environ.get(
                "wsgi.url_scheme") + "://" + http_host

            # check if the browser is logged in
            login = request.cookies.get(COOKIE_NAME)

            if login:
                c.logged_in = True

            ## default return for the __before__ and __after__
            log.debug("[__before__::%r]" % (response))
            valid_request = True
            return response

        except PolicyException as pex:
            log.error("[__before__::%r] policy exception %r" % (action, pex))
            log.error("[__before__] %s" % traceback.format_exc())
            return sendError(response, pex, context='before')

        except webob.exc.HTTPUnauthorized as acc:
            ## the exception, when an abort() is called if forwarded
            log.error("[__before__::%r] webob.exception %r" % (action, acc))
            log.error("[__before__] %s" % traceback.format_exc())
            raise acc

        except Exception as exx:
            log.error("[__before__::%r] exception %r" % (action, exx))
            log.error("[__before__] %s" % traceback.format_exc())
            return sendError(response, exx, context='before')

        finally:
            if valid_request is False:
                self.storage.session.rollback()
                self.storage.session.close()

            log.debug("[__before__::%r] done" % (action))
Beispiel #2
0
    def __before__(self, action, **params):

        log.debug("[__before__::%r]" % (action))
        valid_request = False
        try:
            for key, value in params.items():
                log.debug("[__before__::%r:%r]" % (key, value))

            c.audit = request_context[audit]
            c.audit['client'] = get_client(request)
            request_context['Audit'] = audit

            self.storage = config.get('openid_sql')

            getCookieExpire = int(config.get("linotpOpenID.CookieExpire", -1))

            self.COOKIE_EXPIRE = 3600
            if getCookieExpire >= 0:
                self.COOKIE_EXPIRE = getCookieExpire

            c.logged_in = False
            c.login = ""
            c.version = get_version()
            c.licenseinfo = get_copyright_info()

            http_host = request.environ.get("HTTP_HOST")
            log.debug("[__before__] Doing openid request from host %s" % http_host)
            if not is_valid_fqdn(http_host, split_port=True):
                err = "Bad hostname: %s" % http_host
                audit.log(c.audit)
                c.audit["action_detail"] = err
                log.error(err)
                raise HTTPBadRequest(err)

            self.BASEURL = request.environ.get("wsgi.url_scheme") + "://" + http_host

            # check if the browser is logged in
            login = request.cookies.get(COOKIE_NAME)

            if login:
                c.logged_in = True

            ## default return for the __before__ and __after__
            log.debug("[__before__::%r]" % (response))
            valid_request = True

            return response

        except PolicyException as pex:
            log.exception("[__before__::%r] policy exception %r" % (action, pex))
            return sendError(response, pex, context='before')

        except webob.exc.HTTPUnauthorized as acc:
            ## the exception, when an abort() is called if forwarded
            log.exception("[__before__::%r] webob.exception %r" % (action, acc))
            raise acc

        except Exception as exx:
            log.exception("[__before__::%r] exception %r" % (action, exx))
            return sendError(response, exx, context='before')

        finally:
            if valid_request is False:
                self.storage.session.rollback()
                self.storage.session.close()

            log.debug("[__before__::%r] done" % (action))