1

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 で基本認証パラメーターを設定できる方法はありますか? 何らかの構成ファイルか何かがありますか?私はインターネット上で何も見つけることができません...

4

1 に答える 1

0

こちらをご覧ください: https://access.redhat.com/documentation/en-US/Fuse_ESB_Enterprise/7.1/html/Security_Guide/files/CamelJetty-BasicAuth.html

Apache Karaf基本認証をおよびで機能させる方法が非常に明確に説明されていCamel Jettyます。後で、.xml にデプロイされたすべてのバンドルで使用できますApache Karaf

于 2012-08-24T18:21:31.983 に答える