229.8. HTTP Basic 認証の使用
以下に示すように、Netty HTTP コンシューマーは、使用するセキュリティーレルム名を指定することにより、HTTP Basic 認証をサポートします。
<route>
   <from uri="netty-http:http://0.0.0.0:{{port}}/foo?securityConfiguration.realm=karaf"/>
   ...
</route>
<route>
   <from uri="netty-http:http://0.0.0.0:{{port}}/foo?securityConfiguration.realm=karaf"/>
   ...
</route>Basic 認証を有効にするには、レルム名が必須です。デフォルトでは、JAAS ベースのオーセンティケーターが使用されます。これは、指定されたレルム名 (上記の例では karaf) を使用し、JAAS レルムとこのレルムの JAAS \{{LoginModule}} を認証に使用します。
Apache Karaf/ServiceMix のエンドユーザーはすぐに使用できる karaf レルムを持っているため、上記の例がこれらのコンテナーですぐに機能する理由です。
229.8.1. Web リソースに ACL を指定する
					org.apache.camel.component.netty.http.SecurityConstraint を使用すると、Web リソースに対する制約を定義できます。また、org.apache.camel.component.netty.http.SecurityConstraintMapping はすぐに使用できるように提供されており、ロールを使用してインクルージョンとエクスクルージョンを簡単に定義できます。
				
たとえば、XML DSL で以下に示すように、制約 Bean を定義します。
上記の制約は、次のように定義されます。
- /* へのアクセスは制限され、すべてのロールが受け入れられます (ユーザーがロールを持っていない場合も同様)
- /admin/* へのアクセスには管理者ロールが必要です
- /guest/* へのアクセスには、管理者またはゲストのロールが必要です
- /public/* へのアクセスは、認証が不要であることを意味するエクスクルージョンであるため、ログインしなくても全員に公開されます
この制約を使用するには、以下に示すように Bean ID を参照するだけです。
<route>
   <from uri="netty-http:http://0.0.0.0:{{port}}/foo?matchOnUriPrefix=true&securityConfiguration.realm=karaf&securityConfiguration.securityConstraint=#constraint"/>
   ...
</route>
<route>
   <from uri="netty-http:http://0.0.0.0:{{port}}/foo?matchOnUriPrefix=true&securityConfiguration.realm=karaf&securityConfiguration.securityConstraint=#constraint"/>
   ...
</route>