如何使用 BasicAuth 保护自定义端点?

2023-12-12

假设我已使用 BasicAuth 启用了对资源的身份验证:

class MyBasicAuth(BasicAuth):
    def check_auth(self,username,password,allowed_roles,resource,method):
        return username == 'secretusername' and password == 'secretpass'

我还有自定义路由,用于从 HTML 视图管理文档。如何使用相同的 MyBasicAuth 来保护所有自定义路由?我还需要实现使用上述 MyBasicAuth 进行身份验证的逻辑。 请在这件事上给予我帮助。它供个人使用,因此我更喜欢对用户名和密码进行硬编码。


如果您尝试使用自定义端点身份验证,您会发现很困难,如下所述:https://github.com/pyeve/eve/issues/860我最终编写了一个包装器来解决“资源”未传递给“requires_auth”的问题:

def auth_resource(resource):
def fdec(f):
    @wraps(f)
    def wrapped(*args, **kwargs):
            return f(resource=resource, *args, **kwargs)
    return wrapped
return fdec

这样您就可以在您的 DOMAIN 中定义一个身份验证类:

DOMAIN = {
    'testendpoint'= {'authentication':MyCustomAuthetication},
    'otherendpoints'=...

在我的应用程序中,我包装了 requests_auth 装饰器并将其添加为身份验证资源。

@app.route('/testendpoint/<item>', methods=['GET'])
@auth_resource('testendpoint')
@requires_auth('item')
def my_end_point_function(*args, **kwargs):
    dosomthinghere

只要在端点的设置文件中定义了身份验证类,这还允许您重用在另一个端点中定义的任何身份验证,如果您想确保所有端点都使用相同的身份验证,这可能会很方便。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 BasicAuth 保护自定义端点? 的相关文章

  • 如何从 Python 返回 JSON 值?

    我从如下所示的 jQuery 文件发送 ajax 请求 该请求需要 JSON 格式的响应 jQuery ajax url Control getImageDetails file id currentId type GET contentT
  • 用于查找列表/集合中唯一元素的代码

    根据上面阴影部分的面积应该代表 A XOR B XOR C XOR A AND B AND C 如何将其翻译成Python代码 代码必须与上述表达式中提供的集合操作密切相关 至少这是首选 该代码必须足够通用 能够处理 3 个以上的列表 UP
  • 如何让Python的socket服务器永远运行

    我有这段代码创建了一个简单的Python套接字服务器 但是每次客户端断开连接时它都会关闭 如何让它永远运行 import socket HOST PORT 8000 s socket socket socket AF INET socket
  • 在 Django 中获取数据库类型[重复]

    这个问题在这里已经有答案了 我需要能够确定 Django 运行时使用的数据库类型 MYSQL False if
  • sphinx 中的分组方法文档字符串

    是否可以使用 sphinx 的 autodoc 功能将多个方法文档字符串分组 以便将它们列在一起 class Test object def a self A method of group foo def b self A method
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • SQLAlchemy:检查给定值是否在列表中

    问题 在 PostgreSQL 中 检查某个字段是否在给定列表中是使用IN操作员 SELECT FROM stars WHERE star type IN Nova Planet SQLAlchemy 的等价物是什么INSQL查询 我尝试过
  • 使用 OpenCV 进行相机校准 - 如何调整棋盘方块大小?

    我正在使用 OpenCV Python 示例开发相机校准程序 来自 OpenCV 教程 http opencv python tutroals readthedocs io en latest py tutorials py calib3d
  • 直接打开Spyder还是通过Pythonxy打开?

    之前 我一直在运行PythonSpyder 我总是开始Spyder直接双击其图标 今天突然发现我还有一个东西叫Python x y 我注意到我也可以开始Spyder通过它 这两种方法有什么区别吗 如果不是的话 有什么意义Python x y
  • 获取 HTML 代码的结构

    我正在使用 BeautifulSoup4 我很好奇是否有一个函数可以返回 HTML 代码的结构 有序标签 这是一个例子 h1 Simple example h1 p This is a simple example of html page
  • Bottle 是否可以处理没有并发的请求?

    起初 我认为 Bottle 会并发处理请求 所以我编写了如下测试代码 import json from bottle import Bottle run request response get post import time app B
  • 如何将字符串方法应用于数据帧的多列

    我有一个包含多个字符串列的数据框 我想使用对数据帧的多列上的系列有效的字符串方法 我希望这样的事情 df pd DataFrame A 123f 456f B 789f 901f df Out 15 A B 0 123f 789f 1 45
  • 当我打印“查询”时获取 PY_VAR1

    我正在制作一个简单的网络抓取代码 当我尝试打印一个值时 它给了我其他东西 def PeopleSearch query SearchTerm query what is query print str query SearchTerm St
  • 如何将列表中的每个项目转换为字符串,以便连接它们? [复制]

    这个问题在这里已经有答案了 我需要加入一个项目列表 列表中的许多项目都是从函数返回的整数值 IE myList append munfunc 我应该如何将返回的结果转换为字符串以便将其加入列表 我是否需要对每个整数值执行以下操作 myLis
  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • 无法在 Windows 服务器上使 SVN 预提交脚本失败

    我正在编写一个 SVN pre commit bat 文件 该文件调用 Python 脚本来查询我们的问题跟踪系统 以确定用户提供的问题跟踪 ID 是否处于正确的状态 例如 打开 状态 并与正确的关联项目 SVN 服务器运行 Windows
  • Python中的MariaDB连接器无法连接到远程服务器

    我使用与远程 Mariadb 服务器的连接已有几个月了 今天 无法再通过 macOS 上的 python mariadb 模块和 mariadb 连接器建立连接 基本安装如下 brew install mariadb connector c
  • Python 可以替代 Java 小程序吗?

    除了制作用于物理模拟 如抛射运动 重力等 的教育性 Java 小程序之外 还有其他选择吗 如果你想让它在浏览器中运行 你可以使用PyJamas http pyjs org 这是一个 Python 到 Javascript 的编译器和工具集
  • 使用 Python 进行 Google 搜索网页抓取 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近为了工作中的一些项目 学习了很多python 目前我需要使用谷歌搜索结果进行一些网络抓取 我发现几
  • 使用Python的线程模块调用ctypes函数比使用多处理更快?

    我一生都无法找出这个问题的答案 我编写了一个可以执行数百次繁重计算的脚本 我有一个绝妙的主意 将这些计算任务编写为 C 然后使用 Python 的 ctypes 与它们交互 我心想 我什至可以使用并行性进一步优化它 我最初的方法是使用线程

随机推荐

  • 如何将文本框的值从一种表单传递到另一种表单

    如果我将一个值存储到 form1 的文本框中 并且必须将该值传递到另一个 form2 的另一个文本框中 将值从一种形式传递到另一种形式的方法是什么 有一个没有 的方式 1 Using TextChanged event Private Su
  • 解决“无法调用 NSManagedObject 类上的指定初始值设定项”

    我是 Swift 新手 我正在尝试学习如何使用 Core Data 但我收到了这个错误 我不确定我做错了什么 我在网上搜索并尝试了一些方法 但我无法得到正确的结果 Failed to call designated initializer
  • 可选参数的默认值必须是常量

    所以我创建了这个事件跟踪应用程序 我有两个屏幕 即地图和事件列表 我试图让地点列表等于我在应用程序状态中的地点 请记住 placeList 是一个可修改的列表 我需要将地点添加到此列表中 但是 每当我初始化时 我都会收到 可选参数的默认值必
  • 如何检测双精度浮点溢出和下溢?

    我有以下变量 double dblVar1 double dblVar2 它们的值可能很大但小于double max 我对上述变量有各种算术 例如加法 乘法和幂 double dblVar3 dblVar1 dblVar2 double d
  • 检查 Samba 上的符号链接是否与 python 共享

    我可以在 Windows 中使用 Python 知道我有权访问的 Samba 共享上的某些文件是 真实 文件还是符号链接吗 我试过os path islink但它返回 false 如文档所述 如果不支持符号链接 则始终为 False 还有其
  • 有人在 64 位 Windows 7 上成功使用 64 位 Eclipse for Android 2.3 开发吗?

    有人在 64 位 Windows 7 上成功使用 64 位 Eclipse for Android 2 3 开发吗 请正面回答only if 当您通过 Eclipse 的 Run Ctrl F11 调用模拟器时 将安装要调试的应用程序的 A
  • PHP if 是整数的倍数

    在 for 循环中 我需要添加一些仅当循环位于 3 的倍数 减 1 时输出的 HTML 例如 我可以做的是 for i 0 i
  • System.IO.StreamWriter 不会为整个 for 循环写入内容

    我正在尝试用 C 将一长串数字写入文件 但它在列表末尾之前一直停止 例如下面的代码 System IO StreamWriter file new System IO StreamWriter D test txt for int i 0
  • NetworkStream 如何在两个方向上工作?

    我读过 Tcp Echo 服务器的示例 但有些事情我不清楚 TcpClient client null NetworkStream netStream null try client listener AcceptTcpClient net
  • C/C++ 结构体到 C#.Net CF WinCE 的转换

    您好 我正在尝试将 C C 结构转换为 C C C 结构如下 typedef struct NDISUIO QUERY OID NDIS OID Oid PTCHAR ptcDeviceName UCHAR Data sizeof ULON
  • OpenNETCF签名控制问题

    我正在使用 OpenNETCF 中的签名控件 它非常适合我需要的大多数东西 但是 我需要一种方法反转签名并将其重新加载 它有一个调用来获取签名的 字节 GetSignatureEx 它返回一个byte 的签名 然后可以使用以下命令重新加载此
  • 如何在C#中使用Fiddlercore捕获http请求?

    我正在尝试使用 C 中的 fiddlercore 捕获请求标头 这是我的代码 我使用 selenium 访问我想要获取请求标头 网络表单的网页 我可以访问网页 但无法使用 fiddlercore 捕获任何内容 我知道我必须使用委托和 Beg
  • ASP.net MVC - 呈现包含不同类型的列表,每种类型具有不同的视图

    想象一下 我有一个实现名为 ISummary 的接口的对象列表 该列表中的对象可能具有附加属性 即 public interface ISummary Guid Id get set string Title get set DateTim
  • 控件显示在设计器中但不显示在模拟器中

    这是我的第一个 Xamarin 应用程序 我在 Visual Studio 中设置了环境 并且有一个可以在 Android 模拟器中运行的模板项目 将几个控件拖放到设计器表面后 我发现当我在模拟器中运行应用程序时 我添加的两个控件 一个按钮
  • 何时使用reinterpret_cast?

    我对以下内容的适用性有点困惑reinterpret cast vs static cast 根据我的阅读 一般规则是当类型可以在编译时解释时使用静态强制转换 因此这个词static 这也是 C 编译器在内部用于隐式转换的转换 reinter
  • 在 ORM 查询中使用原始 SQL

    是否可以使用您自己的原始 SQL 进行编辑或覆盖 ORM 生成的 SQL 或者 ORM 是否足够灵活 可以构建几乎任何我能想象到的查询 具体来说 这是我试图进行的查询 也许通过 ORM 构建并不太难 尽管我看不到任何明显的构建路径 这是模型
  • 滚动时修复列标题 - jqgrid

    如果我的网格数据在当前窗口上滚动 是否可以在滚动数据时冻结列标题 以便列标题始终可见 就像在 Excel 中一样 我使用 height auto 因为我不想修复网格高度 提前致谢 如果网格是页面上最顶层的元素 则使用position fix
  • 如何使用绑定更新 Azure 函数中的 Azure 表行?

    我正在使用node和Azure Functions使用functions json中定义的绑定来更新我的azure表 我能够使用 out 绑定插入行 但找不到任何有关如何更新它们的文档 函数 json tableName myTable c
  • 在 OSGi Bundle 中使用受限类

    为了使用 Endpoint 通过 SSL 进行发布 我需要访问包下的类com sun net httpserver 通过使用 Eclipse IDE 我找到了一种使用此类的方法 但是导出捆绑包并在另一个春分 OSGi 安装中运行它们我无法启
  • 如何使用 BasicAuth 保护自定义端点?

    假设我已使用 BasicAuth 启用了对资源的身份验证 class MyBasicAuth BasicAuth def check auth self username password allowed roles resource me