Нужны предложения, чтобы узнать, возможно ли это в Camel для приведенного ниже сценария.Apache Camel - вызов вызовов http или rest (отфильтрован через систему безопасности Shiro)
Мы пытаемся использовать Apache Camel для тестирования интеграции веб-приложения. Приложение должно получить доступ через вызовы службы отдыха. Каждый запрос приложений фильтруется с помощью безопасности. Когда я делаю спокойный вызов или http-вызов этого приложения, мне нужно настроить необходимую информацию об аутентификации в заголовке и убедиться, что запрос верблюда успешно обработан. Есть ли способ сделать это на верблюде - «вызов http или отдыха для доступа к приложению, чьи запросы защищены apache shiro»? Я вижу, что у Camel есть сильная компонента безопасности, которая больше похожа либо на авторизацию верблюжьих маршрутов, либо на определение безопасности для верблюжьих маршрутов, и я не вижу, что могу использовать их для этой цели?
Я попытался настроить ярлыки проверки подлинности в заголовке различными способами (например, используя свойство аутентификации Exchange), но он не работает. Любые предложения, пожалуйста?
ОБНОВЛЕНИЕ: Shiro поддерживает свою собственную сессию и выглядит ID_пользователь и его/ее разрешение (называемый Shiro Subject), чтобы убедиться, что его аутентифицированный и авторизованный запрос. Всякий раз, когда мы отправляем запрос на защищенное приложение Shiro, он фильтрует запрос, проверяет запрос, чтобы узнать, разрешено ли ему право доступа к функциям приложения, а затем разрешить нам. Если информация пользователя недоступна на сеансе Shiro, это будет перейдите на экран входа в систему. Наше веб-приложение раскрыло функциональность как услуги по отдыху. Возможно ли в Camel позвонить в такое приложение, которое встроено в систему безопасности Apache Shiro? В принципе, я должен высмеять тему Shiro и установить в HTTP-заголовке, чтобы он выглядел как запрос с проверкой Shiro.
Я пробовал делать http-звонки с токеном Shiro Authentication, установленным в заголовках обмена. Но его неудача. Возможно ли это в Camel или я иду в неправильном направлении? Любое предложение или помощь в этом отношении очень ценится. Ниже приведено подмножество кода, с которым я играл.
// заверните в Subject
Subject subjectUnderTest = new Subject.Builder(getSecurityManager())
.principals(new SimplePrincipalCollection("Username", "RealmName")).authenticated(true).buildSubject();
MockEndpoint OutEndpoint = getMockEndpoint("mock.out");
OutEndpoint.expectedMessageCount(1);
Endpoint InEndpoint = context.getEndpoint("direct.in");
Map<String, Object> headers = new HashMap<String, Object>();
headers.put(Exchange.HTTP_METHOD, "GET");
headers.put(Exchange.AUTHENTICATION, subjectUnderTest);
template.sendBodyAndHeaders(InEndpoint, "test body", headers);
Благодаря Viggy
Как правило, вы можете установить любой заголовок, который вам нравится на обмене верблюдов, и этот заголовок будет отправлен как HTTP-заголовок с вашим запросом. Каковы были бы точные требования к аутентификации через Shiro? – Ralf
Я добавил свои обновления о том, что я пытался сделать в нашем приложении. – Viggy