标签: middleware

LMAX Disruptor如何解决典型的消息代理问题?

理解了的LMAX干扰器是,它是一个完整的吓人,快速,可怕的并发Java代码JAR,允许吞吐量每秒20万条(如果正确使用).

我们目前有一个ActiveMQ实例,它在我们需要的整个过程中很慢,大约每秒400条消息.我想知道我们是否会受益于重构我们的代码以使用LMAX,但是有以下问题:

  • 如何拥有1个发布者和多个(竞争)消费者
  • LMAX如何存储/存储其消息?在记忆中?
  • 故障转移 - LMAX是否具有故障转移协议/机制
  • 磁盘I/O - LMAX可以将未使用的消息保存到磁盘并在以后恢复它们吗?

并且,如果我完全偏离所有这些,并且似乎完全误解了LMAX干扰器的使用,那么有人可以提供何时使用它的具体示例?提前致谢!

java concurrency middleware messagebroker lmax

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

将变量从中间件传递到模板

我是Django入门者。到目前为止,我了解了从视图模板的传递变量。但是现在我需要将变量传递到主布局。我可以在每个页面的定义中传递它。但是它有太多重复。因此,我开始学习中间件。

我创建了middlewares.py并将其包含在设置中。在middlewares.py文件中,如何将变量传递到我的主布局?

以下是我当前的middlewares.py内容,我尝试了许多方法并对其进行了注释,因为它们无法正常工作。

from django.db import connections
from django.shortcuts import render, redirect

class NotificationsMiddleware(object):
    def process_view(self, request, view_func, view_args, view_kwargs):

        request.context_data['notification_count'] = 2
        response = view_func(request, *view_args, **view_kwargs)

        return response

    # def process_request(self, request):
    #     request.notification_count = 2
    #     return

    # def process_template_response(self, request, response):
    #     # response.context['notification_count'] = 2
    #     response.context_data['notification_count'] = 2
    #     # return response
    #     return render(request, 'main/locations.html')
Run Code Online (Sandbox Code Playgroud)

django variables middleware

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

我可以验证使用带有.net后端的本机iOS sdk创建的Facebook jwt令牌吗?

我正在使用.net核心web api后端的iOS应用程序上实现Facebook登录.

  1. 我在Facebook上创建了具有客户端ID和密码的应用程序.
  2. 我在我的应用中添加了iOS和网页
  3. iOS应用程序成功连接并获取令牌
  4. 我将app.UseFacebook代码添加到我的startup.cs并使用app id等配置它.
  5. 我将authorize属性添加到我限制访问的操作中
  6. 我使用https get从iOS调用此web api操作,并添加http标头授权承载(我从Facebook获取的令牌)

获取返回状态代码401,就像我的令牌无效一样.我想知道iOS令牌是否也可以用于网页应用程序?我为我的Facebook应用程序配置了这两个.

middleware jwt facebook-ios-sdk asp.net-core

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

Slim3从CSRF中间件中排除路由

我正在建立一个基于slim3框架的网上商店.我需要处理服务器到服务器的POST请求以确认付款是否成功.我将csrf添加到容器中,如下所示:

$container['csrf'] = function($container) {
    return new \Slim\Csrf\Guard;
};
Run Code Online (Sandbox Code Playgroud)

并将其添加到应用程序中,如下所示:

$app->add($container->csrf);
Run Code Online (Sandbox Code Playgroud)

而且效果很好.但是现在我需要能够在某个路径上添加一个例外,这样我才能得到他们发送的帖子请求.到目前为止我找不到合适的解决方案.

有什么建议?

routing middleware csrf slim-3

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

如何为经过身份验证的用户和未经身份验证的用户设置路由

我有 auth:api 中间件的问题!当我为非身份验证用户定义这样的路由时,我们有一个请求可供身份验证用户和非身份验证用户访问:

Route::post('{user}/leads', 'UsersController@getContact');
Run Code Online (Sandbox Code Playgroud)

当来宾用户请求此路线时,一切正常。是,我可以访问用户$request->user();

但是如果使用承载头传递令牌并获取用户$request->user()当然它不起作用!因为我们没有auth:api在这条路线上使用,如果我们这样做了,我们将无法与来宾用户一起访问这条路线!所以我找不到一种方法,我们为两个经过身份验证的用户定义一条路由,如果用户经过身份验证,我们就会得到$request->user()并且没有经过身份验证的用户也可以访问该路由!

提前致谢。

middleware routes oauth laravel laravel-passport

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

你如何配置i18next-express-middleware?

我正在尝试开始在 Express 服务器上使用 i18next,但无法根据文档中的示例使其正常工作。

我的应用程序由 index.js(我的 Express 服务器)、package.json 和一个locales包含两个翻译文件的目录组成:en.json 和 es.json。

索引.js

'use strict';

const express = require('express');
const i18n = require('i18next');
const i18nMiddleware = require('i18next-express-middleware');
const path = require('path');

const app = express();
const port = process.env.PORT || 8080;

i18n
  .use(i18nMiddleware.LanguageDetector)
  .init({
    fallbackLng: 'en',
    lowerCaseLng: true,
    preload: ['en', 'es'],
    resGetPath: path.join(__dirname, 'locales/__lng__.json'),
    useCookie: false
  });

app.use(i18nMiddleware.handle(i18n, {
  removeLngFromUrl: false
}));

app.get('/', (req, res) => {
  res.send(req.t('home.title'));
});

app.use(express.static(path.join(__dirname, 'public')));

module.exports = app.listen(port, (err) => {
  if (err) …
Run Code Online (Sandbox Code Playgroud)

middleware node.js express i18next

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

在Redux中,使用中间件增强存储会产生“意外密钥”错误

我收到此错误:

在传递给createStore的preloadedState参数中找到意外的键“ dispatch”,“ subscribe”,“ getState”,“ replaceReducer”,“ liftedStore”。期望找到已知的化简键之一:“ form”。意外的键将被忽略。

我的新Redux商店(带有应用的中间件)是:

// redux extension
const composeEnhancer = window.__REDUX_DEVTOOLS_EXTENSION__ || compose;
const enhancer = composeEnhancer(applyMiddleware(promiseMiddleware()));
const store = createStore(reducer, enhancer);
Run Code Online (Sandbox Code Playgroud)

我从这里遵循了指南:https : //github.com/zalmoxisus/redux-devtools-extension

javascript middleware redux react-redux

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

如何使用基于声明的授权保护ASP.NET Core 2.1中的静态文件夹

我有一个使用asp.net core 2.1的小项目。我希望保护充满静态资产的文件夹。我试图根据这篇文章实施https://odetocode.com/blogs/scott/archive/2015/10/06/authorization-policies-and-middleware-in-asp-net-5.aspx

我正在使用cookie和基于声明的授权。所有应该检查授权的视图都可以正常工作...除了静态文件夹。当我检查httpContext.User时,它丢失了所有预期的声明。

中间件:

public class ProtectFolder
{
    private readonly RequestDelegate _next;
    private readonly PathString _path;
    private readonly string _policyName;

    public ProtectFolder(RequestDelegate next, ProtectFolderOptions options)
    {
        _next = next;
        _path = options.Path;
        _policyName = options.PolicyName;
    }

    public async Task Invoke(HttpContext httpContext, IAuthorizationService authorizationService)
    {
        if (httpContext.Request.Path.StartsWithSegments(_path))
        {
            var authorized = await authorizationService.AuthorizeAsync(httpContext.User, null, _policyName);
            if (!authorized.Succeeded)
            {
                await httpContext.ChallengeAsync();
                return;
            }
        }

        await _next(httpContext);
    }
}
Run Code Online (Sandbox Code Playgroud)

启动文件

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options => …
Run Code Online (Sandbox Code Playgroud)

c# middleware asp.net-core asp.net-core-2.1

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

Laravel中间件中的'return $ next($ request)'是做什么的?

请尊重我是编程和Laravel的新手,所以这个问题对于大多数人来说似乎有些奇怪。
但是我认为这是stackoverflow的目的,所以:

当我使用命令创建一个新的中间件时,php artisan make:middleware setLocale已经有了handle-function并带有以下代码:

return $next($request);

我想知道这行到底是做什么的。

closures middleware laravel

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

MapWhen()中的MVC授权适用于所有控制器

在ASP.Net Core 3.0 Preview 7中,我尝试编写一些代码,如下所示:

  public void Configure(IApplicationBuilder app) {

            app.MapWhen(context =>
                context.Request.Path.StartsWithSegments(
                      new PathString("/UnsecureLog")),
                a => {
                    a.UseRouting();
                    a.UseEndpoints(endpoints => {
                        endpoints.MapControllers();
                    });
                }
            );
            app.UseAuthentication();
            app.UseAuthorization();

            app.MapWhen(context =>
                context.Request.Path.StartsWithSegments(
                   new PathString("/SecureLog")),
                a => {
                    a.UseRouting();
                    a.UseEndpoints(endpoints => {
                        endpoints.MapControllers()
                            .RequireAuthorization("MustBeReader");
                    });
                }
            );
        }
Run Code Online (Sandbox Code Playgroud)

我的目标是允许无需身份验证即可在中间件中处理某些控制器,而我的想法是MapWhen()是实现这一目标的方法。

相反,我在到达/UnsecureLog端点时看到此错误:

System.InvalidOperationException: Endpoint ... contains authorization metadata,
but a middleware was not found that supports authorization.
Configure your application startup by adding app.UseAuthorization()
inside the call to Configure(..) in the application …
Run Code Online (Sandbox Code Playgroud)

authorization middleware asp.net-core-3.0

2
推荐指数
3
解决办法
1662
查看次数