簡體   English   中英

如何允許通過Web Controller Python腳本導入其他受限制的模塊? Plone4

[英]How do I allow through-the-web Controller Python Scripts to import otherwise restricted modules? Plone4

我有一個控制器頁面模板和一個處理動作的控制器Python腳本。 很高興我能夠通過網絡添加這個表單和動作腳本,所以每次我對代碼稍作修改時我都不需要構建並重新啟動Plone實例。 問題是我的python腳本應該構建一個內容對象列表作為一個數組,然后通過POST作為REQUEST主體發送到遠程服務器的JSON數組與另一個服務器共享對象。 我的數組名為arrayOfObjects,應該看起來像“[{'param1':val1,'param2':val2},{'param1':val3,'param2':val4}]”。

import json

...other stuff...

sJSON = json.dumps( arrayOfObjects )

上面的代碼可以在標准的python解釋器中使用,但Plone限制了許多模塊在ZMI中管理的通過Web的Python腳本的使用。 這是一個很好的安全功能,但我希望繼續通過網絡開發腳本,並在完成所有工作后將其移動到我的附加產品中的文件系統存儲中。 我聽說AccessControl包的allow_module功能應該啟用導入,但聽起來好像你仍然可能必須讓它在文件系統上運行。 有沒有辦法同時通過Web腳本編輯Python腳本和JSON模塊,這對我正在構建的功能至關重要? 提前感謝您的任何信息!

PS-導入json模塊時我看到的權限不足屏幕(預期的行為 - 沒有錯誤)

在某些地方,在常規python代碼中,添加以下內容:

from AccessControl import allow_module
allow_module('json')

將模塊列入白名單。 是的,這必須從基於文件系統的Python運行,為明顯的安全原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM