hereのように、プログラムでJettyサーバーの基本認証を実装したいとします。利便性のために、私はここでそのスニペットをV'ingしています。Camel Jettyとの基本認証
import org.mortbay.jetty.security.*;
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(8080);
server.setConnectors(new Connector[]{connector});
Constraint constraint = new Constraint();
constraint.setName(Constraint.__BASIC_AUTH);;
constraint.setRoles(new String[]{"user","admin","moderator"});
constraint.setAuthenticate(true);
ConstraintMapping cm = new ConstraintMapping();
cm.setConstraint(constraint);
cm.setPathSpec("/*");
SecurityHandler sh = new SecurityHandler();
sh.setUserRealm(new HashUserRealm("MyRealm",System.getProperty("jetty.home")+"/etc/realm.properties"));
sh.setConstraintMappings(new ConstraintMapping[]{cm});
WebAppContext webappcontext = new WebAppContext();
webappcontext.setContextPath("/mywebapp");
webappcontext.setWar("./path/to/my/war/orExplodedwar");
webappcontext.addHandler(sh);
HandlerCollection handlers= new HandlerCollection();
handlers.setHandlers(new Handler[]{webappcontext, new DefaultHandler()});
server.setHandler(handlers);
server.start();
server.join();
ここで問題になるのは、上記の方法ではサーバーへのハンドルが必要だということです。しかし、私の場合はCamelを使用しているため、サーバーに直接アクセスすることはできません。これは私のパイプラインが定義されている方法です。
from("jetty:http://localhost:8080/documents_in?matchOnUriPrefix=true").
process(new MyProcessor());
は、どのように私は私の場合にリンクされた認証ソリューションを適応させるのですか?それとも全く別の方法に従わなければならないのですか?
私はCamelとJetty初心者の両方です。どんな助けでも大歓迎です。ありがとう。
補遺:
This page私たちに役に立たないののように、しかし、我々は、春を使用していない、春のXMLでそれを行う方法を示しています。
これを共有してくれてありがとうございます。 CamelのHTTP機能をテストするためにコードを使用しても問題ありませんか? camel-httpを使用してアウトバウンドHTTP呼び出しを行う実行環境があります。 camel-http4への移行を計画しているので、私は実際のライブ環境のテストケースを十分に持ちたいと思っていました。テストケースについては、JettyにBasic Auth(コードを使用)をホストし、テストケースでアウトバウンドコールを実行しています。あなたのコードを使用して予約がある場合は、私に知らせてください。 – Robin
@Robin好きなようにコードを自由に使うことができます。コードを投稿した時点で、SOはCC-BY-SAライセンスを維持していましたが、現在は[MITライセンス]に変更されています(http://meta.stackexchange.com/questions/271080/the-mit-license-clarity- on-use-on-using-code-on-stack-overflow-and-stack-exchange)を使用して実行されます。私はそれ故、私の古い投稿の全てをMITとも見なす(実際にそうする権利があるのかどうかは分からない^^) –
ありがとう。 MITライセンスを追加しました(コードはテスト用です)。また、あなたのコードでは、Jetty :: JAASライブラリを使用してX509証明書を検証するためのログインサービスも用意されています。私がキャメル桟橋で走ることができるかどうか見てみましょう。 – Robin