跳转到主要内容

一个用于连接外部应用程序与opencore的函数库

项目描述

一个对与opencore集成有用的函数小型库。

内容

libopencore.auth

  • get_secret(filename)

    获取用于在cookie解析和构造中使用的共享密钥。

  • generate_cookie_value(username, shared_secret)

    使用此方法设置cookie,以便opencore能够识别用户已登录。

  • authenticate_from_cookie(cookie_string, shared_secret)

    返回由cookie识别的用户的用户名和散列值。如果cookie格式不正确,则抛出BadCookie异常;如果cookie格式正确但未使用正确的共享密钥,则抛出NotAuthenticated异常。

libopencore.deliverance_middleware

  • filter_factory / CustomDeliveranceMiddleware

    Deliverance中间件(v0.3)的子类,在执行外部子请求时携带原始请求的HTTP_X_OPENPLANS_*标题和cookie。这允许外部应用程序正确尊重登录和上下文信息。

    它还硬编码了必要的Deliverance规则集和主题uri。

    主题由opencore本身在门户上注册的@@theme.html视图中提供。在这里,它通过对外部请求OpenCore堆栈的前端进行请求来获取,以确保主题中的链接正确。

libopencore.wsgi

  • composite_factory / URLDispatcher

    paste.composite_factory,它将根据URL将请求分发给opencore和其他应用程序(tasktracker和wordpress)。

    它将在执行子请求之前添加必要的请求头。

libopencore.http_proxy

  • app_factory / RemoteProxy

    paste.app_factory,它将代理请求到外部HTTP调用。传递一个包含应用基础href的remote_uri

    如果设置了is_opencore,它将重写请求以告诉Zope的VirtualHostMonster响应中的链接应如何显示。

更改

0.7

  • 新模块libopencore.import_utils

  • libopencore.import_utils 中新增了新功能 parse_listen_settings

0.6

  • 在 http_proxy 应用中添加了新的配置变量 site_root,用于代理到 opencore (zope) 后端。默认值是 /openplans/。如果您代理到的 opencore 后端中 plone 站点根目录安装在别处,或者您正在使用 ++skin++ 层进行定制,您可以将其设置为不同的值。

    应使用此变量而不是将 remote_uri 设置为类似 http://localhost:10001/++skin++avata/ 的值。而不是

    remote_uri = http://localhost:10001/++skin++avata/

    您应该使用

    remote_uri = http://localhost:10001 site_root = /++skin++avata/openplans/

    以确保正确的 URL 生成。

  • 在 Deliverance 子请求中添加了保留头 X-Forwarded-Server。

0.5

新增功能

  • http 代理的负载均衡器现在可以将机器人发送到特定的后端。

    要为特定后端使用它,传递 robots_uri 的 URL,并且如果请求的 User-Agent 字符串匹配一组已知机器人,则将选择此 URL。

    为了将机器人与其他所有用户隔离,可以将此 URL 从 remote_uri 参数中省略。

  • 当页面中有 <div class="opencore_wysiwyg"> 时,deliverance.xml 规则现在会尝试获取 /openplans/xinha-config。这用于将一致的 Xinha 编辑器应用到 WordPress 页面上。更多详情和上下文请见:http://www.coactivate.org/projects/opencore/lists/opencore-dev/archive/2010/09/1283636838104/forum_view

已修复的 Bug

  • 非 Zope opencore 组件的根 URL 必须有尾部斜杠;如果没有,则会发出永久重定向到正确 URL。我注意到的具体症状是项目博客首页上“撰写新文章”链接(当以项目管理员身份登录且尚未发表任何文章时)的 URL 错误地缺少 /blog/ 组件。这种行为以前存在于 DeliveranceVHoster 中的某个地方。

  • Ajax 请求的响应(X-Requested-With: XMLHttpRequest)即使它们有 Content-Type: text/html,也不会由 Deliverance 主题化。这修复了 TaskTracker Ajax 请求在任务上发布新评论的行为。

  • deliverance.xml 规则不再尝试获取 /openplans/oc-footer/openplans/oc-header;这些很久以前就没有使用了,因此没有必要对 Zope 进行额外的子请求。

  • 在 wsgi.py 中的复合 WSGI 应用程序现在在将请求导向 opencore 时添加了请求头 X-Openplans-Application: zope。这种行为以前存在于 DeliveranceVHoster 中。它修复了 http://trac.socialplanning.org/opencore/ticket/2943

0.4

在 http 代理中添加了一个简单的随机选择负载均衡器。

要为特定后端使用它,请将 URL 作为 remote_uri 的空格分隔列表传递,而不是单个 URL。假设您在每个 URL 上都有相同的应用程序监听,代理请求将分布在这些 URL 上。

(预期用途是多个 Zope 实例与同一 ZEO 服务器通信,尽管我认为它也可以用于其他任何应用程序,如果存在这种原因的话。)

0.3

已修复的 Bug

  • 解决深层堆栈中一个 Bug,导致响应 HTML 中的链接(如 /foo/my.domain.com/bar/)被重写为 /foo/my.domain.com:80/bar/,如果 HTTP_HOST 是 my.domain.com:80。

  • 以前一些代理的 WordPress URL 不正确,导致 404 错误。现在已修复。

新增功能

添加了 transcluder_middleware 模块和 paste.filter_factory 的 libopencore#transcluder 入口点。

如果使用 transcluder 中间件,则必须安装 Transcluder。

如果使用transcluder中间件,它应该是您堆栈中最外层的WSGI过滤器。这是因为Transcluder有时会发出内部WSGI子请求而不是HTTP调用,并调用其内部应用。因此,如果您在Transcluder外部有路由、安全或其他重要内容,可能会得到奇怪的结果。

增加了对代理到Twirlip服务器的支持。Twirlip必须通过常规paste#urlmap安装在/notifications上(此时/映射到主libopencore复合应用),并且必须由transcluder中间件包装。

要使用Twirlip代理,请安装libopencore的twirlip额外要求(在setup.py的extras_require中列出)。

要使用Twirlip代理,请使用设置is_twirlip=true的libopencore#proxy应用,以及一个指向用于身份验证的共享密钥的绝对路径的设置topp_secret_filename。您的Twirlip代理将被Eyvind中间件包装,该中间件将REMOTE_USER转换为带有共享密钥签名的特殊HTTP头,然后由Twirlip服务器解码。

Twirlip和Transcluder目前在一个OpenCore堆栈中使用,为wikipage编辑和任务更改提供基于订阅的电子邮件通知。但除非您绝对需要,否则不要尝试使用这些功能 - 我很快将用更简单的替代Twirlip。

0.2

增加了deliverance_middleware、wsgi和http_proxy模块。

增加了一个paste.ini示例文件,展示了如何将这些模块组合成一个前端应用,该应用代理到opencore、tasktracker和wordpress,并在必要时使用deliverance进行主题化。

0.1

初始发布。增加了auth模块。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

libopencore-0.7.1.tar.gz (15.2 kB 查看散列)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面