У меня есть пакет 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 для конкретной конечной точки? Есть ли какой-то файл конфигурации или что-то в этом роде? в инете ничего не могу найти...