我需要验证电子邮件和域名.我只需要正式验证,不需要whois或其他形式的域查找.
目前我正在使用apache的commons-validator v1.4.0
不幸的是,我的客户使用新的gTLD,例如DomainValidator类尚不支持的.bike或.productions.有关更多详细信息,请参阅Apache的Jira问题.
我可以轻松地在Maven POM中包含任何声音替代品吗?
我的典型路径是这样的
/user/{user_id}/resource/{resource_id}
Run Code Online (Sandbox Code Playgroud)
我有一个验证方法,已经用异步 python 编写,如下所示:
async def is_allowed(user_id: int, resource_id: int) -> bool
Run Code Online (Sandbox Code Playgroud)
返回一个布尔值:如果用户可以访问该资源,则返回 true,否则返回 false。
我想编写一个middleware调用is_allowed从路径中提取变量的程序。
我摆弄了一下,但找不到如何获取它们:我希望从request.path_params.
一个更完整的示例(根据@Marcelo Trylesinski 回答进行编辑):
import logging
from fastapi import FastAPI
from starlette.requests import Request
from starlette.responses import Response
app = FastAPI()
_logger = logging.getLogger()
_logger.setLevel(logging.DEBUG)
async def is_allowed(user_id, resource_id):
_logger.error(user_id)
_logger.error(resource_id)
return True
@app.middleware('http')
async def acl(request: Request, call_next):
user_id = request.path_params.get("user_id", None)
resource_id = request.path_params.get("resource_id", None)
allowed = await is_allowed(user_id, resource_id)
if not allowed:
return Response(status_code=403) …Run Code Online (Sandbox Code Playgroud) 我有一些页面使用了大量的javascript(例如,对数据集进行排序和过滤).
典型的用法是显示复杂项目列表(通常<li>与内部的一些HTML一起呈现):用户可以删除,编辑或添加具有特定表单的项目.由于项目很复杂,我保留一组javascript对象来执行任何类型的操作,例如在执行任何操作之前验证用户输入.
用户的操作和详细信息通过异步调用发送到服务器:结果到达后,我必须更新HTML和javascript数组.
我使用这个hack:服务器将json编码的数据结构和更新的HTML作为单个字符串返回.在数据到达时,一些javascript代码拆分响应并将第一个块解析为json(更新数组)并将第二个块放入容器的内部html中,替换先前的内容.
我不想从数据结构生成HTML,因为它不是单人应用程序,并且Web设计人员经常(并且独立地)更改HTML布局.我都不想从HTML重新创建数据结构(过于复杂且容易出错).
这个系统运行得很好,只有大内容有一些问题,是跨浏览器(基于jQuery构建)并且似乎没有大的性能问题.
问题是:我是否遗漏了使这种解决方案变得糟糕的微妙(或可能是显而易见的)的东西?它是否存在更简单,更好的解决方案?
顺便说一句,服务器运行PHP.
谢谢.
ajax ×1
apache ×1
c ×1
fastapi ×1
java ×1
javascript ×1
json ×1
optimization ×1
python-3.x ×1
validation ×1