В настоящее время мы используем HTTPD-сервер (apache) для обработки клиентского запроса. Запросы далее передаются на сервер приложений (glassfish), который предоставляет контент. Содержимое - статические файлы (образы программного обеспечения). Ниже используется директива ProxyPass.
ProxyPass /access/sw http://localhost:8080/access/sw
Мы хотели бы, чтобы Apache обрабатывал статическое содержимое, поскольку это освобождает стеклянную рыбку для выполнения других задач. Единственная проблема с этим заключается в том, что запрос по-прежнему необходимо направить стеклянной рыбке для проверки бизнес-логики. Сервер Glassfish после запуска бизнес-логики должен отправить ответ Apache, подтверждающий, что клиенту разрешено загружать образ программного обеспечения. Он также может отправить отрицательный ответ обратно в Apache, чтобы отклонить запрос клиентов.
Как этого добиться? Есть ли какие-нибудь модули apache для этого? Чтобы повторить, достижимо ли следующее?
Request from client -> Apache -> Glassfish (runs the business logic) -> responds back to Apache if client should be allowed to download -> Apache serves the static file depending on glassfish response
P.S - Клиент не может обрабатывать запросы перенаправления. Клиент отправляет один GET
Просто думаю вслух. Я могу придумать 2 сценария.
Во-первых, вам разрешено использовать PHP (или python, ruby ...) на вашем apache.
Просто заставьте пользователя запросить PHP-скрипт при загрузке файла, тогда ваш php сделает запрос к glassfish, говоря (разрешено ли этому пользователю загружать это программное обеспечение?), Если это нормально, тогда отправьте свой запрос с PHP, иначе ответ с 403 ( Запрещено).
Второй будет выполнять то же самое, что и выше, но в виде модуля apache.