跳转到主要内容

Zope应用服务器/网络框架

项目描述

https://github.com/zopefoundation/Zope/actions/workflows/tests.yml/badge.svg https://coveralls.io/repos/github/zopefoundation/Zope/badge.svg?branch=master Documentation Status Current version on PyPI Supported Python versions

 

Zope logo

Zope是一个开源的Web应用服务器。

本文档提供了有关Zope的一些基本信息,并提供了到其他文档的链接。完整的文档可以在https://zope.readthedocs.io找到。

安装

请访问https://zope.readthedocs.io/en/latest/INSTALL.html以获取详细的安装指南。

许可证

Zope 使用 OSI 认证的 Zope 公共许可证(ZPL),版本 2.1。完整的许可证文本包含在 LICENSE.txt 文件中。

错误跟踪器

应通过 Zope 错误跟踪器在 https://github.com/zopefoundation/Zope/issues 提交错误报告。错误报告应包含有关如何重现错误的详细信息。

变更日志

以下是从 Zope 4.1.2 分支点开始,针对 Zope 5 所做的所有更改,包括 alpha 版本。

前一个版本,Zope 4 的更改日志在 https://github.com/zopefoundation/Zope/blob/4.x/CHANGES.rst

5.10 (2024-05-18)

  • 通过文件扩展名识别 WebDAV 的页面模板。(#1212

  • 清理和修复安装文档。

  • 官方支持 Python 3.12.1。(#1188

  • 修复指向使用方括号中的 IP-literal 提供的主机的 URL 的重定向。修复了 #1191

  • 引入装饰器 ZPublisher.zpublish,以通过 ZPublisher 显式控制发布。有关详细信息,请参阅 #1197

  • 修复不支持 rfc6266 的客户端的 Content-Disposition 文件名。 (#1198)

  • 支持 Chameleon 结构 表达式类型。修复了 #1077

  • 修复使用在 zope 根外部定义的用户查看 ZMI 时的认证错误。修复了 #1195#1203

  • 解决 Products.CMFCoreProducts.CMFPlone 设计错误(注册不可调用的构造函数)。有关详细信息,请参阅 #1202

5.9 (2023-11-24)

  • 支持 PUT 请求中的表单数据(遵循 multipart 示例)。修复了 #1182

  • 将 ZODB 连接信息分离到新的 ZODB 连接视图。

  • 将缓存详细链接移动到单个数据库页面。

  • 修复参考计数页面上的自动刷新功能。

  • 更新 ZMI 中的 Ace 编辑器。

  • 限制对静态 ZMI 资源的访问。

  • 更新到依赖项的最新兼容版本。

  • 添加 paste.filter_app_factory 入口点 content_length。此 WSGI 中间件组件可以与不遵循 PEP 3333 关于带有 Content-Length 标头的请求输入处理的建议的 WSGI 服务器一起使用。允许管理员修复 #1171

  • 官方支持 Python 3.12。

5.8.6 (2023-10-04)

  • 确保 ZMI 面包屑中的对象标题被引号包围,以防止跨站脚本问题。

  • 更新到依赖项的最新兼容版本。

  • 基于为 CVE-2023-42458 开发的内联/附件逻辑,以正确的媒体类型为基础(忽略参数和空白,并转换为小写)。 (#1167)

5.8.5 (2023-09-21)

  • 仅允许某些图像类型内联显示。对于其他图像,特别是 SVG 图像,强制下载。默认情况下,我们使用允许类型的列表。您可以通过设置 OS 环境变量 OFS_IMAGE_USE_DENYLIST=1 切换到拒绝类型的列表。您可以使用环境变量 ALLOWED_INLINE_MIMETYPES 覆盖允许列表,并使用 DISALLOWED_INLINE_MIMETYPES 覆盖拒绝列表。用逗号或空格分隔多个条目。此更改仅影响直接 URL 访问。 <img src="image.svg" /> 与之前的行为相同。(CVE-2023-42458)有关详细信息,请参阅 安全公告。)

  • 将ZMI框架源逻辑限制为仅允许本地站点源。由Miguel Segovia Gil报告的问题。

  • 在SVG文件属性中添加了图像尺寸 #1146

  • 修复了错误请求的访问日志中没有用户名的问题,请参阅问题 #1155

  • 更新到依赖项的最新兼容版本。

  • 添加了对Python 3.12rc3的初步支持。

5.8.4 (2023-09-06)

  • 禁用一个ZCatalog(更准确地说:Products.PluginIndexes)性能测试,该测试偶尔在GitHub上失败。有关详细信息,请参阅 #1136

  • 恢复从App.Extensions.getObject()返回的对象的代码对象的文件名。在4.0a6中丢失了此功能。

  • 更新到依赖项的最新兼容版本。

  • 添加了对Python 3.12rc1的初步支持。

  • 使mapply具有__signature__感知能力。这允许通过设置包装器上的__signature__的装饰器来发布方法,以指定要使用的签名。有关详细信息,请参阅 #1134。注意:mapply仍然不支持关键字参数、可变位置参数和可变关键字参数。

  • 使Zope的拒绝服务保护参数可配置 #1141

  • RestrictedPython更新到版本6.2以减轻安全问题。(CVE-2023-41039)

  • AccessControl更新到版本6.2以减轻安全问题。(CVE-2023-41050)

5.8.3 (2023-06-15)

  • 修复了未指定值的类型为file的请求参数的处理;修复了 #1132

  • 修复了从ZMI添加没有有效文件输入的页面模板的问题(#1130

  • 更新到依赖项的最新兼容版本。

5.8.2 (2023-05-22)

  • 允许ZPublisher同时处理查询字符串和请求体;查询字符串中的请求参数在请求属性form(一个字典)中提供,请求体可以通过请求键BODY(一个字节对象)或BODYFILE(一个类似文件的对象)访问。修复了 #1122

  • 支持WSGI服务器访问请求的BODY键,这些服务器传递不可寻址的请求体(例如,例如,Gunicorn)。修复了 #1125

  • 不要在传递查询字符串和Content-Type标题的GET请求中中断。有关详细信息,请参阅 #1117

  • 实现CodeQL扫描的建议代码更改。

  • 为一些Sphinx文档添加了日语翻译(#1109

  • 更新到依赖项的最新兼容版本。

  • 更新zope.ini.in skel以支持使用反斜杠的日志路径。(#1106

5.8.1 (2023-03-17)

  • 清理并修复了tainting修复 #1095

  • multipart替换cgi.FieldStorage,避免Python 3.11弃用的cgi模块。

    用真实的binary属性标记二进制转换器。

    修复了编码处理和:bytes转换器。

    请参阅 #1094

  • 清理和重构依赖配置文件。

  • 更新到依赖项的最新兼容版本。

  • 支持内容类型application/x-www-form-urlencoded的(非标准)charset参数。这是必需的(例如,对于Plone),因为jquery构造的内容类型为`application/x-www-form-urlencoded; charset=utf-8`。有关详细信息,请参阅 plone/buildout.coredev#844

5.8 (2023-01-10)

  • 只有在异常视图中有内容时,才将响应头Content-Type设置为text/html。 (#1089)

  • 停止支持Python 3.6,因为它已经处于停用状态一段时间了。

  • 更新到依赖项的最新兼容版本。

  • 修复了在__setstate__中修改实例的类的历史页面,例如Products.PythonScripts.PythonScript实例。请参阅launchpad问题735999

5.7.3 (2022-12-19)

  • 由于默认内容类型已更改,明确将App.Dialogs.MessageDialog和异常视图作为HTML提供服务。请参阅#1075

5.7.2 (2022-12-17)

5.7.1 (2022-12-16)

  • 如果没有明确设置,则将发布默认的Content-Type头设置为text/plain以防止跨站脚本攻击。同时移除为返回两项元组的发布方法构造HTML页面的旧行为。

  • 更新到依赖项的最新兼容版本。

5.7 (2022-11-17)

  • 脚本addzopeuser现在接受参数“-c”或“–configuration”。这允许传递一个用于使用zope.conf文件的自定义位置。如果没有指定,则不改变行为。

  • 更新到依赖项的最新兼容版本。

  • 将功能测试实用程序更改为支持百分比编码和unicode路径(#1058)。

  • 将基本身份验证头解码为utf-8,而不是latin1(#1061)。

  • 在挑战响应的WWW-Authenticate头中使用UTF-8字符集,如RFC7617中所述(#1065)。

  • ZPublisher.Converters中添加了:json转换器(#957)。

  • 支持Python 3.11。

5.6 (2022-09-09)

  • 使Products.PageTemplate引擎与Chameleon 3.10兼容。

  • 更新到依赖项的最新兼容版本。

  • 开始工作于Python 3.11支持,它将在以后的版本中到来。

  • 修复cookie路径参数处理:如果cookie路径值包含%,则假定它是一个完整的引号并按原样使用;如果它只包含在URL路径中允许的字符(未引号),则按原样使用;否则,使用Python的urllib.parse.quote进行引号处理(#1052)。

5.5.2 (2022-06-28)

  • waitress更新到版本2.1.2。

  • 改进find_bad_templates():也检查文件系统页面模板,并在网络报告中显示html标签(#1042

  • 修复Python 3.6兼容性的版本锁定规范(#1036)。

  • 对重定向URL的所有组件进行引号处理(而不仅仅是路径组件)(#1027

  • 从构建配置中删除便利脚本生成,以摆脱大量的依赖版本锁定。这些只为维护者手动安装它们而需要。(#1019

  • 更新到依赖项的最新兼容版本。

  • 修改“manage_access”,允许用户在定义了30个以上的角色时从紧凑视图切换到完整矩阵视图。(#1039

  • 删除cookie域名的开头的.#1041

5.5.1 (2022-04-05)

  • 更新到依赖项的最新兼容版本。

  • waitress 升级到版本 2.1.1 以缓解该软件包中的漏洞。由于 waitress 不再支持 Python 3.6,因此不建议在 Python 3.6 上运行 Zope,即使它仍然支持 Python 3.6。 由于此安全问题,Python 3.6 的支持现在已正式弃用。它将在 Zope 版本 5.7 中被移除。

  • 现在要在 Zope 项目中运行 bin/buildout,需要 zc.buildout >= 2.13.7zc.buildout >= 3.0.0b1

5.5 (2022-03-10)

  • 修复在调用 ZPublisher.utils.fix_properties 时出现的几个异常。

  • 更新到依赖项的最新兼容版本。

  • 增强 Cookie 支持。详细信息,请参阅 #1010

  • 除非内容类型指定不同,否则对于非字节响应数据使用中间 str 表示形式。(#1006)

  • 使用 zc.buildout 3.0rc2 安装 Zope 以运行其测试。

5.4 (2022-01-09)

  • 审查和修复代码和文档中的所有超链接

    • 由于持续存在的域名所有权问题,将 zope.org 的引用更改为 zope.dev。由于 zope.dev 由 Plone 基金会拥有,因此免受干扰。XML/ZCML 命名空间 URL 保持不变。

    • 移除所有完全无效的链接,例如旧的 zope.org 收藏者问题跟踪器。

    • 更新所有其他杂项链接,使其重新工作或删除过时信息。

  • 改进默认 WebDAV PUT 工厂的类型猜测 (#997)

  • 启用 WebDAV PUT 工厂更改新创建对象的 ID (#997)

  • 修复 App.version_txt.getZopeVersion 中的潜在竞争条件 (#999)

  • 不要对添加 DTML 文档/方法的文件上传字段进行强制转换。这使得添加表单在 ZPublisher 转换代码更改后再次工作。

  • 从更多代码中删除已弃用的 ulines、utext、utokens、ustring。在属性表单中,显示弃用警告。

  • 添加函数 ZPublisher.utils.fix_properties。您可以调用此函数以修复行属性,使其仅包含字符串,而不是字节。它还用它们的非 Unicode 变体替换了已弃用的属性类型 ulines、utext、utoken 和 ustring。(#987)

  • 添加对 Python 3.10 的支持。

  • 更新到依赖项的最新兼容版本。

5.3 (2021-07-31)

  • 由于底层问题已修复,恢复使用 Products.TemporaryFolder 的简单会话。(#985

  • 更新 AccessControl 版本固定,以修复远程代码执行问题(见 AccessControl 安全警告 GHSA-qcx9-j53g-ccgf

  • 防止 AccessControl 中移动导入的 DeprecationWarnings

  • 确保“Manager”用户始终可以修改代理角色(参见 Products.PythonScripts#50

  • 弃用“unicode”转换器的使用。此外,field2lines 的行为现在与其他转换器保持一致,并返回字符串列表而不是字节列表。(#962

  • 更新到依赖项的最新兼容版本。

5.2.1 (2021-06-08)

  • 防止通过授权的 Python 模块在 TAL 表达式中进行未经授权的遍历

  • 更新 Zope 标志。(#973

  • 更新到依赖项的最新兼容版本。

5.2 (2021-05-21)

  • 防止在 TAL 表达式中遍历以 _ 开头的名称,并修复 chameleon.tales 表达式引擎的路径表达式。

  • 为事务撤消表单提供更友好的 ZMI 错误消息(#964

  • 更新/修复了Zope开发者指南中的投票应用程序教程(#958

  • 更新依赖项到最新版本。

  • 依赖于 zope.datetime 以提供函数 iso8601_daterfc850_daterfc1123_date,这些函数原本位于 App.Common 中,同时保留向后兼容的导入。

不兼容的更改

  • 除了 field2bytes 外,字段转换器不再尝试读取文件对象(#558

5.1.2 (2021-03-02)

  • 在递归XML-RPC数据转储期间强制执行Zope权限(#954

  • 如果内容没有 get_size 方法但父对象有,则 compute_size 方法正确地返回 None。(#948

  • 修复所有控制面板页面上的控制面板标签链接

  • 更新依赖项到最新版本。

5.1.1 (2021-02-10)

  • OFS 中,用 getId 调用来替换已弃用的直接 id 访问。(#903

  • 更新ZMI对Font Awesome、jQuery和bootstrap的依赖。

  • 修订调试信息GUI(#937

  • 通过 ISO-8859-1(HTTP/1.1的默认编码)将 bytes HTTPResponse 标头值转换为 str

  • 修复未找到资源的渲染。(#933

  • 更新依赖项到最新版本。

5.1 (2020-11-12)

不兼容的更改

  • 从TALES路径表达式中排除 chameleon 的插值语法中特殊字符(即 ${}),以减少 chameleon 插值启发式算法的失败风险(#925

功能

  • 恢复ZMI 调试信息 控制面板页面(#898

修复

  • 修复错误日志中pre元素的ZMI可见性(Products.SiteErrorLog#26

  • 修复页面模板重复变量的 length#913

  • isort 更新到版本 5。(#892

  • 更新依赖项到最新版本。

5.0 (2020-10-08)

不兼容的更改

  • 停止支持Python 3.5,因为它即将停止支持。(#841

功能

  • 支持HTTP头编码(#905

  • 添加对Python 3.9的支持。

  • 添加新接口 Products.PageTemplates.interfaces.IZopeAwareEngine。它可以作为适配器注册的“提供”使用,将非 Zope tales引擎适配到 Zope 页面模板使用的引擎(#864)。目前,适配器仅在模板使用 chameleon 渲染时使用;对于 zope.pagetemplate,引擎按原样使用 - 这可能在将来改变。

  • 允许(某些)内置函数作为(TALES)路径表达式的第一个元素:在不信任的上下文中,允许来自 AccessControl.safe_builtins 的内置函数;在信任的上下文中,除了允许所有Python内置函数外(并具有优先权)。

  • 再次支持预定义的 attrs 模板变量(只要 chameleon 允许)。(#860

  • 使用 Chameleon(>= 3.7.2)配置,以获得更好的错误信息,这些错误在模板执行期间被检测到(#837)。

修复

  • 提供更有意义的 OFS.SimpleItem.Item_w__name__.id,以避免使用已弃用的直接 id 访问带来的错误(例如,参见 #903)。

  • 更新到 zope.interface > 5.1.0 以修复内存泄漏。

  • 修复导出非拉丁-1兼容命名的文件(参见 #890

  • 避免无请求的翻译(参见 #876

  • 使“chameleon-zope上下文包装”更忠实。(参见 #873

  • 让“Unicode冲突解决”适用于所有模板(而不仅仅是 ZopePageTemplate)。(参见 #872

  • 使“Unicode冲突解决”可用于使用 chameleon 渲染的模板(参见 Products.CMFPlone#3145)。

  • 改进“Zope Book”中“上下文(CONTEXTS)”的文档。

  • 减少复制/粘贴剪贴板cookie的cookie大小(参见 #854

  • 修复页面模板中 default 关键字的处理(参见 #846

  • 修复包版本解析并正确显示ZMI中的主要版本

  • 改进 debugError 方法的稳健性。(参见 #829

  • 修复 ZTUtils.LazyFilter 无法在受限Python脚本中导入的问题。(参见 #901

其他更改

  • 通过 pre-commit 添加 pyupgrade(参见 #859

  • 添加 tal:switch 测试

5.0a2(2020-04-24)

错误修复

  • 为“管理WebDAV锁定”权限固定 AccessControl 4.2

  • 修复注册视图上的 HEAD 请求(参见 #816

  • 改进 chameleon –> zope.tales 上下文包装(支持模板变量注入)(参见 #812)。

  • 要求 zope.tales>=5.0.2

  • 通过完全尊重由 PageTemplate.pt_getEngine 返回的引擎(参见 #717)修复问题717。引擎还决定是否使用 zope.tales(引擎是 zope.pagetemplate.engine.ZopeBaseEngine 的实例)或 chameleon.tales(否则)TALES表达式。

  • 修复了 displayname WebDAV属性的编码问题(参见 #797

  • 修复了 manage_DAVget 的后备实现(参见 #799

其他更改

  • 更新依赖项到最新版本。

5.0a1(2020-02-28)

不兼容的更改

  • 停止支持Python 2.7,即Zope 5无法在Python 2上运行。如果您仍在使用Python 2.7,请首先升级到最新的Zope 4版本,然后迁移到Python 3,再切换到Zope 5。(参见 #692

  • 移除所有标记为将在Zope 5中删除的向后兼容代码(参见 #478

  • 停止支持使用ZServer运行Zope,因为它仅适用于Python 2。(参见 #592

  • 移除已弃用的请求方法 postProcessInputs。(参见 #782

  • 移除已弃用的模块 ZPublisher.maybe_lock。(参见 #758

  • 从产品上下文中删除帮助系统方法。(#756)

  • 删除更多已弃用代码。(#757)

  • 更新 Zope 5 的 Zope 文档源。(#659)

新功能

错误修复

  • 仅对具有 read 方法的响应体使用 wsgi.file_wrapper。(#763

  • 改进 HTTPS 请求的检测。(#680

  • 修复 ZMI 中的几个链接,使其遵守虚拟主机。(#788

  • 修复 manage_main 上的排序链接 URL。(#748

  • 添加更多测试,以确保所有 __str__ 实现返回原生字符串。(#692

  • 通过强制页面模板引擎修复长期存在的测试错误。在 Products.PageTemplates 中的许多测试使用了旧的 Zope 页面模板引擎,因为在设置期间没有注册正确的引擎。

  • 在关闭时关闭打开的数据库(因为 ZServer 已经这样做)。(#740

  • 当参数 path 不是它可以处理的东西时,方法 unrestrictedTraverse 会引发错误。(#674

  • 改进 ZMI 安全选项卡在高数量角色时的可用性。(#730

  • 一些小的 ZMI 渲染修复。(#729

  • 修复在 ZMI 中使用数据库最小化时出现的错误。(#726

  • 修复 UnauthorizedBinding 中的 __getattr__ 签名。(#703

  • 修复在 Python 3 中 VirtualHostMonster 无法设置映射的问题。(#708

  • 降低在 ZMI 查找选项卡中获取内置名称的风险。(#712

  • 恢复错误删除的 Image 对象的 Properties ZMI 选项卡。(#706

  • 修复 OFS.Image.File.__str__ 的 Pdata 内容。(#711

  • 使用 Zope 用户身份验证在 wsgi 环境中设置 REMOTE_USER。(#713

  • Paste 作为 extras_require 依赖项添加,以便在安装时使用 pipconstraints.txt 拉入 Paste,以防止启动错误。这需要在 egg 规范中添加 [wsgi] 额外内容。(#734

其他更改

  • 将重试请求延迟处理从 supports_retry 中移出。(#474

  • 改进 Zope 错误日志服务的文档。

项目详情


发布历史 发布通知 | RSS 源

下载文件

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

源代码分发

zope-5.10.tar.gz (12.6 MB 查看哈希值)

上传时间 源代码

构建分发

Zope-5.10-py3-none-any.whl (3.2 MB 查看哈希值)

上传时间 Python 3

由以下支持

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