找回密码
 立即注册
查看: 708|回复: 0

拦截器如何进行请求拦截过滤

[复制链接]

17

主题

1

回帖

115

积分

管理员

积分
115
发表于 2024-6-15 19:49:04 | 显示全部楼层 |阅读模式
拦截器用于拦截和处理HTTP请求和响应。在请求开始处理之前进行拦截过滤与处理。

API文档

拦截器一般用于初始化lua脚本中创建拦截规则。
它主要用于浏览器的请求中某些目录或文件不允许访问、某些目录需要验证权限,在拦截器中进行判断并选择是否继续向下执行。

要求:必须返回`bool`型变量:`true`  = 允许并继续,`false` = 终止请求

示例:
interceptor.lua
local request = require("fastweb.request")
-- 验证是否为禁止的路径
local function is_denied()
    -- 禁止访问的路径
    local denied_path = {
        -- session作为会话存储目录
        "/session",
        -- /api/init 存放的初始化代码等
        "/api/init",
    }
    -- 获取请求路径
    local request_filepath = request.filepath()
    -- 遍历禁止路径
    for _, path in ipairs(denied_path) do
        if request_filepath:sub(1, #path) == path then
            return true
        end
    end
    return false
end

if is_denied() then
    return false
end

-- 没有需要禁止的路径
return true
init.lua
local interceptor = require("fastweb.interceptor")
----------拦截器示例-------------
-- 拦截所有请求
interceptor.add("/*.*","/api/init/interceptor.lua")
-- 输出初始化成功
print("init ok")
return true
注意:拦截器需要在初始化或其它代码中创建拦截规则




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Fastweb

GMT+8, 2024-11-21 17:26 , Processed in 0.023059 second(s), 17 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表