标签: middleware

如何向Appengine的webapp框架添加中间件?

我正在使用appengine webapp框架(链接).是否可以添加Django中间件?我找不到任何例子.我正在尝试让FirePython中间件工作(链接).

python django google-app-engine middleware django-middleware

3
推荐指数
1
解决办法
3079
查看次数

.NET与Java EE中间件?

有人可以比较.NET与Java EE的中间件差异(优点/缺点).

如果没有,至少提供一个有用的链接供我阅读,简洁明了.

.net middleware java-ee

3
推荐指数
1
解决办法
5854
查看次数

将 SOAP 转换为 REST

如何使用 Java 语言将 SOAP 转换为 REST?

package net.weather;
import java.sql.*;
import javax.jws.WebService;
@WebService
public class ProjectFinalWS{
Connection con;
Statement st;
ResultSet rs;
String res;
public void connectDB()
     {
      String url ="jdbc:mysql://localhost:3306/";
      String dbName ="project";
      String driver = "com.mysql.jdbc.Driver";
      String userName = "root"; 
      String password = "root";
      try
      {
      Class.forName(driver).newInstance();
      con = DriverManager.getConnection(url+dbName,userName,password);

      }catch(Exception e){}
     }
public float getMaxTemp(String city)
{     float mxtemp=0;
      connectDB();
      try{
      st=con.createStatement();
      rs=st.executeQuery("select  maxtemp from weather where city='"+city+"'");
      rs.next();
      mxtemp=rs.getFloat(1);
      st.close();
      con.close();
      }
      catch(Exception e){}

return mxtemp; …
Run Code Online (Sandbox Code Playgroud)

rest soap web-services middleware

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

金字塔:用于自定义记录器和外部授权系统的Tween或WSGI中间件?

我想清楚地了解什么是最pythonic和更清洁的实现方式:

  1. 自定义记录器.
  2. 一段代码,通过REST连接到第三方权利系统,与内部Pyramid ACL和权限系统相结合.

我是否应该编写一个WSGI中间件来获取应用程序作为参数或纯金字塔补间中的一个或两个我的要求?

另外,哪个wsgi中间件或补间最符合apache + mod_wsgi?

谢谢

python middleware tween pyramid

3
推荐指数
1
解决办法
665
查看次数

打破环中间件场景

Ring非常流畅,并且对于中间件有一些非常合理的默认值.

当我通过leiningen(lein)创建一个新应用程序时,我在路由器/处理程序中得到了类似的东西

(def app
  (wrap-defaults app-routes site-defaults))
Run Code Online (Sandbox Code Playgroud)

https://github.com/ring-clojure/ring-defaults

现在我想添加更多中间件(cemerick/friend),这样我就可以进行登录认证等操作.

那么,我如何将上述内容翻译成更像环形中间件"堆栈"的内容,如页面底部https://github.com/ring-clojure/ring-defaults/blob/master/src/ring /middleware/defaults.clj

(def app
  (-> handler  
    (wrap-anti-forgery)
    (wrap-flash)
    (wrap-session)
    (wrap-keyword-params)
    (wrap-resource)
    (wrap wrap-file)))
Run Code Online (Sandbox Code Playgroud)

middleware clojure ring

3
推荐指数
1
解决办法
762
查看次数

get/post/...和use之间有什么区别

所有:

我是Express 4路由器的新手.

当我尝试一些登录/注册示例时,我得到一个关于.use和.get/.post函数的问题:

我有时看到它使用:

var express = require('express');
var router = express.Router();

router.get('/hello', function(req, res, next) {
  res.send("Welcome");
});
Run Code Online (Sandbox Code Playgroud)

在主应用程序中,我们使用它像:

app.use("/", router);
Run Code Online (Sandbox Code Playgroud)

在其他时间,它使用:

var express = require('express');
var router = express.Router();

//here the router uses .use() function rather than .get/.post
router.use('/hello', function(req, res, next) {
  res.send("Welcome");
});
Run Code Online (Sandbox Code Playgroud)

在主应用程序中,我们使用它像:

app.use("/", router);
Run Code Online (Sandbox Code Playgroud)

所以我想知道它们之间有什么区别,.use()只是所有get/post/put/...的通用名称吗?

我发现这篇文章:app.use和express.js中的app.get之间的区别

但仍然不觉得这很容易理解....

谢谢

middleware express

3
推荐指数
1
解决办法
3777
查看次数

如果我在 Express 中指定了一个 router.param,为什么 app.param 不起作用

全部:

我对 Express.js 很陌生,当我尝试 .param() 时,一件有趣的事情是:

在 app.js (主服务器文件)中,我有类似的东西:

app.param("id", function(req, res, next, id){
  console.log(id+" in app level");
  next();
})
app.use("/", routes);
Run Code Online (Sandbox Code Playgroud)

该应用程序是 Express Application 对象,在路由路由器模块中:

router.param("id", function(req, res, next, id){
    console.log(id + " in router level");
    next();
})

router.get('/:id', function(req, res, next) {
  res.send('respond with a resource');
});
Run Code Online (Sandbox Code Playgroud)

但是当我请求 /testUserId 时,只有路由器模块内的 param() 运行,我以为 app.param() 会先运行,然后是 router.param(),但实际上不是,谁能帮忙解释一下原因(我必须错过来自 Express 的 API 文档的某些部分)以及如何使两者都运行?

谢谢

middleware node.js express

3
推荐指数
1
解决办法
1642
查看次数

Laravel CSRF中间件未检查X-CSRF-TOKEN请求标头

中间件:

use Closure;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier {

    public function handle($request, Closure $next)
    {
        return parent::handle($request, $next);
    }

}
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': 'wrong-token-to-test',
        'X-XSRF-TOKEN': 'another-wrong-token-to-test',
    }
});
Run Code Online (Sandbox Code Playgroud)

刀:

$.ajax({
      method: "POST",
      url: "{{url("login/$user")}}",
      data: {
         "email": $("#email").val(),
         "password": CryptoJS.SHA256($('#password').val()).toString(),
         "_token": "{{csrf_token()}}"
      }
})
Run Code Online (Sandbox Code Playgroud)

即使对csrf令牌使用错误的Http头值('wrong-token-to-test')也不会导致任何令牌不匹配异常.请求正常处理.这是否意味着Laravel没有检查X-CSRF-TOKEN标头?

php ajax middleware csrf laravel

3
推荐指数
1
解决办法
1168
查看次数

@ app.call(env)真正做了什么?

我真的很想知道这些东西是如何工作的,特别是在技术方面.目前,我正在更深入地研究ruby并尝试仅将其用于机架,以便了解基于机架的框架如何工作.

此时,机架中间件让我发疯.为什么?虽然中间件非常简单,但我对它有点困惑@app.call(env).为清楚起见,请考虑以下代码:

class MyCustomMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    @app.call(env) if env['REQUEST_METHOD'] != 'POST'

    body = env['rack.input'].clone
    body = JSON.parse(body.gets || {}, symbolize_names: true)
    body[:some_message] = "Peace, Love and Hope"

    env.update('rack.input', StringIO.new(JSON.dump(body)))

    @app.call(env)
  env
end
Run Code Online (Sandbox Code Playgroud)

我想做的就是更改请求体,如果(并且仅当)请求方法是POST.如果请求方法是除"POST"之外的任何其他类型,我想将请求传递给下一个中间件(它在Rack中以这种方式工作,对吧?).问题是,无论请求方法是否存在,所有代码都在执行POST.

也许这可能是对机架中间件的误解,因为我习惯了Express.js.在Express,您有一堆请求通过的中间件,并且每个中间件调用该next()方法以"释放"请求.我认为这@app.call(env)将类似于Express' next()方法...但看起来不是,因为当我调用它并且所有代码都被执行时请求没有被释放.

有人可以解释一下这个方法到底做了什么,并指出我的错误在哪里?

ruby rack middleware express

3
推荐指数
1
解决办法
1084
查看次数

如何在 HTTP 中间件处理程序之间重用 *http.Request 的请求正文?

我使用 go-chi 作为 HTTP 路由器,我想在另一种方法中重用一种方法

func Registration(w http.ResponseWriter, r *http.Request) {
    b, err := ioutil.ReadAll(r.Body) // if you delete this line, the user will be created   
    // ...other code

    // if all good then create new user
    user.Create(w, r)
}

...

func Create(w http.ResponseWriter, r *http.Request) {
  b, err := ioutil.ReadAll(r.Body)  
  // ...other code

  // ... there I get the problem with parse JSON from &b
}
Run Code Online (Sandbox Code Playgroud)

user.Create 返回错误 "unexpected end of JSON input"

其实,在我执行的ioutil.ReadAll
user.Create停止解析JSON,
r.Body …

middleware http go

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