标签: middleware

修改中间件中的Django设置变量

我在settings.py中设置了一个变量MAX_REQUEST = 100

我编写了一个中间件,它可以通过以下代码降低来自代理IP地址的请求的此值:

settings.MAX_REQUEST = 10
Run Code Online (Sandbox Code Playgroud)

但是,看起来上述修改会影响所有合法用户.

这是正常的吗?

python django settings middleware

2
推荐指数
1
解决办法
1195
查看次数

如何处理所有这些中间件?

我的组织最近一直在努力解决我们是否应该将不同的中间件产品/概念合并到我们的应用程序中的问题.我们正在关注的产品包括Pegasystems,Oracle BPM/BPEL,BizTalk,Fair Isaac Blaze等等.

但是我很难掌握这一切.在我开始评估这些不同产品的有用性(正面或负面)之前,我试图了解这个领域的所有不同概念.我对BPM,ESB,SOA,CEP,WF,BRE,ERP等的字母表不知所措.有些产品似乎涵盖了这些方面中的一个或多个,其他产品则专注于做一个.这些术语似乎都很模糊,彼此混淆.

是否有一个很好的资源来处理所有这些不同的中间件概念/模式?一本书?一个网站?一篇总结得很好的文章?如果有资源将各种流行产品映射到他们所处理的模式,则奖励积分.

谢谢,

〜贾斯汀

soa middleware esb business-process-management

2
推荐指数
1
解决办法
382
查看次数

在不使用request.session的情况下将自定义变量添加到Django Middleware中的请求对象中

有没有推荐的方法可以将变量传递给我的所有视图?也就是说,在我的情况下,我想传递一个外键UserUser对象作为django.contrib.auth.models.User对象。我发现大部分(如果不是全部)视图都需要拉出UserProfile对象,并将其放入Middleware中似乎是一种方法。看来我可以做类似以下的事情(我已经在网上看到了一些建议的解决方案):

request.session['userprofile'] = userprofile_object
Run Code Online (Sandbox Code Playgroud)

我不喜欢这样,因为如果我的UserProfile模型曾经有一个不可序列化的字段,它将破坏request.session。

django middleware request

2
推荐指数
1
解决办法
3281
查看次数

Newrelic导致在每个请求上生成更新的etags

由于newrelic注入的javascript会在每个请求上发生变化,因此页面内容会发生变化,从而迫使每次都生成新的etag.

我知道Rack :: Etag中间件需要在新的中间件之前,但我找不到新的中间件.根据newrelic_rpm的文档,它说对于rails,gem将包含中间件,但是在运行rake中间件时,我没有看到任何新的中间件.

我可以自己添加中间件,但有更好的方法吗?

etag rack middleware ruby-on-rails newrelic

2
推荐指数
1
解决办法
549
查看次数

PHP Slim Framework REST API - 在每个路由之前验证访问令牌?

我已经设置了一个RESTful API和一个单独的客户端网站来调用它.

客户端网站使用资源所有者密码凭据授予类型oAuth2从API获取访问令牌(来自https://myapi.com/v1/oauth/token)

对API的每次其他调用都必须包含访问令牌才能访问数据.

使用Slim框架,我如何获取访问令牌,为属于访问令牌的用户查询数据库并使该用户模型可用于路由?

我想做这样的事情,但我不确定如何......

function validateAccessToken() {
    $access_token = $_GET["access_token"];
    $user = \models\user::where("access_token", "=", $access_token)->first();

    if($user === NULL) {
        throw new exception("Invalid access token");
    }

    return $user
}

$app->get("/v1/emails", validateAccessToken(), function() use ($app) {
    $emails = \models\emails::where("user_id", "=", $user->id)->toArray();
    echo(json_encode($emails));
});
Run Code Online (Sandbox Code Playgroud)

php rest middleware slim access-token

2
推荐指数
1
解决办法
6358
查看次数

从请求中获取用户浏览器数据

在php中有一个全局$_SERVER['HTTP_USER_AGENT']来获取用户浏览器数据.目前SailsJS中是否有类似的功能?

middleware node.js sails.js

2
推荐指数
1
解决办法
2338
查看次数

Express.js中间件额外(第四)参数

Express.js中间件可选参数上,可能是第四个,除了是一个错误处理中间件,我有一个用例,它有用.它可以通过不同的方式实现,但无论如何.

我想要检查一些api路由权限,我想写的中间件应该为请求用户查找他/她有多少信誉点(整数)的数据库.我定义了一个对象来保存作为键值对所需的特权和信誉点.稍后,中间件应查找此特权对象,以查看用户是否具有相应操作的信誉点数大于或等于相同的操作.我想传递这个相应的动作名称,它是特权对象中的一个键,作为每个路径的不同字符串.这可以actionName通过请求路由发送字符串来实现,但我发现它不太安全(请求中的数据可能被篡改为具有恶意用户可以访问的操作名称,并且具有所需的数据字段,但是不允许行动).

所有的情况都与SE的情况一样.

顺便说一句,显然我还需要基于路由(不是基于路由器)的中间件安装,我不确定Express.js是否支持,但这是另一个故事.

也许我可以描述并询问这个用例,因为我可以使用我的参数来参数化中间件函数,而不仅仅是传入的req和res对象?

如何使用Express.js中间件实现此用例?或者我应该使用其他机制?

/// Privilege Check middleware
// used per route with corresponding actionName
// signature function (request, response, next, actionNameOneOfKeysInPrevilegesObject::String)
var privilegeCheck = function (req, res, next, actionName) {
    db.one(
        `
            SELECT reputation FROM users WHERE id = $(id)
        `,
        {id: req.user.id} // remember req.user was set by jwt.sign(data) during login or signup with demanded data; here it is {id:, name:, …
Run Code Online (Sandbox Code Playgroud)

javascript middleware node.js express

2
推荐指数
1
解决办法
2072
查看次数

Redux中间件:如何将其他参数传递给中间件

我正在使用Redux +中间件创建聊天应用程序,并且希望在ADD_MESSAGE分派动作时使用中间件将对象存储在本地存储对象中:

export function storageMiddleware(store) {
return next => action => {
    const result = next(action);
    if (action.type === "ADD_MESSAGE") {
        // Add to my storage object here
    }

    return result;
};
Run Code Online (Sandbox Code Playgroud)

}

如果像这样应用我的中间件:

const store = createStore(
    reducer,
    applyMiddleware(thunk, chatMiddleware)
)
Run Code Online (Sandbox Code Playgroud)

我想传递存储对象,storage但是在文档中找不到任何如何传递附加参数的方法。我怎样才能做到这一点?

middleware redux

2
推荐指数
1
解决办法
1622
查看次数

Gin-Gonic中间件声明

我正在使用Gin-Gonic,并且正在创建自定义中间件。参见:https : //github.com/gin-gonic/gin#custom-middleware

为何将文档中的中间件写成这样:

func MyMiddleware() gin.HandlerFunc {
    return func (c *gin.Context) {
        // middleware
    }
}
r := gin.New()
r.Use(MyMiddleware())
Run Code Online (Sandbox Code Playgroud)

当我可以像这样简单地编写它时:

func MyMiddleware(c *gin.Context) {
    // middleware
}
r := gin.New()
r.Use(MyMiddleware)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

middleware go

2
推荐指数
1
解决办法
2422
查看次数

Laravel-ServiceProvider与中间件

我有一个关于的问题laravel。我知道,由于“基于主要意见”,这个问题可能可以解决,但是您可以给我一些提示。

我问我,使用ServiceProvidersMiddleware中的区别在哪里laravel

所以我的意思是,我什么时候使用ServiceProviders,什么时候应该选择Middleware

两者都是在每个请求上执行的,不是吗?也许你们当中有些人有用例的例子。提前谢谢了!

middleware service-provider laravel

2
推荐指数
1
解决办法
38
查看次数