にOSGi
展開されるバンドルがありApache Karaf 2.2.8
ます。このバンドルでは、ルートを使用CXF
してCamel
います。CXF
基本認証を行うインターセプターを作成しました。データベースから既存のすべてのユーザーを取得し、検証を行います。
問題は、メソッドhandleMessage
が呼び出されたとき、AuthorizationPolicy
オブジェクトが null であることです。資格情報は提供しません。これが私のコードです:
@Override
public void handleMessage(Message message)
throws Fault {
AuthorizationPolicy policy = message.get(AuthorizationPolicy.class);
if (users == null) {
setLastAccessedTime(Calendar.getInstance());
}
if (!wasRecentlyAccessed()) {
users = this.loadUsers();
setLastAccessedTime(Calendar.getInstance());
}
for (String user : users.values()) {
LOGGER.debug("Existing user: " + user);
}
if (policy == null) {
LOGGER.error("User attempted to log in with no credentials");
sendErrorResponse(message, HttpURLConnection.HTTP_UNAUTHORIZED);
return;
}
String password = users.get(policy.getUserName());
if (password == null || !policy.getPassword().equals(password)) {
LOGGER.error("Invalid login authentication for user: " + policy.getUserName());
sendErrorResponse(message, HttpURLConnection.HTTP_FORBIDDEN);
}
}
特定のエンドポイントに対して、Karaf で基本認証パラメーターを設定できる方法はありますか? 何らかの構成ファイルか何かがありますか?私はインターネット上で何も見つけることができません...