晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /opt/imunify360/venv/lib64/python3.11/site-packages/defence360agent/simple_rpc/ |
Upload File : |
from cerberus.errors import BaseErrorHandler, BasicErrorHandler
from defence360agent.contracts.config import UserType
from defence360agent.rpc_tools.middleware import (
add_eula,
add_license,
add_license_user,
add_version,
counts,
default_to_items,
max_count,
preserve_remote_addr,
send_command_invoke_message,
)
from defence360agent.rpc_tools.utils import prepare_schema
class ErrorHandler(BaseErrorHandler):
messages = BasicErrorHandler.messages.copy()
def collect_errors(self, error):
if error.child_errors:
for err in error.child_errors:
yield from self.collect_errors(err)
else:
# avoid abstract error: required field
yield "field: '{}', value: '{}', error: {}".format(
error.field,
error.value,
self.messages.get(error.code, "").format(
*error.info,
constraint=error.constraint,
field=error.field,
value=error.value
),
)
def __call__(self, errors):
string_representation = []
for error in errors:
for info in self.collect_errors(error):
string_representation.append(info)
return string_representation
def init_validator(schema_validator, validate_middleware, schema_paths):
_validator = schema_validator(
prepare_schema(schema_paths),
error_handler=ErrorHandler,
)
# NOTE: it is processed in the reversed order, see _apply_middleware
_middleware = {
None: [
(send_command_invoke_message, (UserType.ROOT, UserType.NON_ROOT)),
# validation before processing the data
(
validate_middleware(_validator),
(UserType.ROOT, UserType.NON_ROOT),
),
# inject license for root
(add_license, (UserType.ROOT,)),
# inject license for regular user
(add_license_user, (UserType.NON_ROOT,)),
# inject eula
(add_eula, (UserType.ROOT,)),
# inject version
(add_version, (UserType.ROOT, UserType.NON_ROOT)),
# for backward compatibility
(default_to_items, (UserType.ROOT, UserType.NON_ROOT)),
],
("whitelist", "ip", "list"): [
(counts, (UserType.ROOT, UserType.NON_ROOT))
],
("blacklist", "ip", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("graylist", "ip", "list"): [
(counts, (UserType.ROOT, UserType.NON_ROOT))
],
("whitelist", "ip", "add"): [
(preserve_remote_addr, (UserType.ROOT, UserType.NON_ROOT))
],
("blacklist", "ip", "add"): [
(preserve_remote_addr, (UserType.ROOT, UserType.NON_ROOT))
],
("whitelist", "country", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("blacklist", "country", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("graylist", "country", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("blacklist",): [(counts, (UserType.ROOT, UserType.NON_ROOT))],
("whitelisted-crawlers", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("blocked-port", "list"): [
(counts, (UserType.ROOT, UserType.NON_ROOT))
],
("blocked-port-ip", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("rules", "list-disabled"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("proactive", "ignore", "list"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("feature-management", "show"): [
(max_count, (UserType.ROOT, UserType.NON_ROOT))
],
("ip-list", "synced"): [(counts, (UserType.ROOT, UserType.NON_ROOT))],
("ip-list", "local", "list"): [
(counts, (UserType.ROOT, UserType.NON_ROOT))
],
("ip-list", "local", "add"): [
(preserve_remote_addr, (UserType.ROOT, UserType.NON_ROOT))
],
("ip-list", "local", "delete"): [
(preserve_remote_addr, (UserType.ROOT, UserType.NON_ROOT))
],
}
_middleware_exclude = {
("enable-plugin",): [add_eula],
("disable-plugin",): [add_eula],
("install-vendors",): [add_eula],
("uninstall-vendors",): [add_eula],
("add-sudouser",): [add_eula],
("delete-sudouser",): [add_eula],
("doctor",): [add_eula],
("captcha", "update-localizations"): [add_eula],
("captcha", "compile-localizations"): [add_eula],
("update",): [add_eula],
("kcarectl", "disable-auto-update"): [add_eula],
("kcarectl", "enable-auto-update"): [add_eula],
("kcarectl", "plugin-info"): [add_eula],
("register",): [add_eula],
("unregister",): [add_eula],
("rstatus",): [add_eula],
("update-license",): [add_eula],
("3rdparty", "list"): [add_eula],
("admin-emails",): [add_eula],
("list-docroots",): [add_eula],
("features", "list"): [add_eula],
("features", "status"): [add_eula],
("features", "install"): [add_eula],
("features", "remove"): [add_eula],
("feature-management", "native", "enable"): [add_eula],
("feature-management", "native", "disable"): [add_eula],
("feature-management", "native", "status"): [add_eula],
("rules", "update-app-specific-rules"): [add_eula],
("support", "send"): [add_eula],
("3rdparty", "conflicts"): [add_eula],
("smtp-blocking", "reset"): [add_eula],
("smtp-blocking", "sync"): [add_eula],
("malware", "on-demand", "check-detached"): [add_eula],
("checkdb",): [add_eula],
("restore-configs",): [add_eula],
}
return _validator, _middleware, _middleware_exclude