Java EE, дифференцировать контекст по пути
Я работаю над решением этой проблемы, что Glassfish не поддерживает отдельные сертификаты для виртуальных хостов.
Предполагается, что мое приложение работает в зависимости от контекста, в зависимости от того, какой клиент хочет получить доступ к своим данным. Я действительно хотел использовать отдельные домены для этого, но так как это невозможно, у меня возникла другая идея:
Я хочу дифференцировать клиентов по пути, по которому они идут. Например: www.application.com/customer1/pages/page.jsf или www.application.com/customer2/pages/page.jsf
Но я не знаю, как это реализовать. Насколько я знаю, эти адреса указывают пути на веб-сервере. Могу ли я как-то сделать это, когда приложение все еще находит страницы?
Предпочтительно я хочу сохранить эти записи (customer1 и customer2) во внешнем файле, чтобы я мог добавить новую запись, не касаясь кода.
1 ответ
Я предполагаю, что вы имеете в виду сертификаты SSL. Я хотел бы рассмотреть вопрос о создании обратного прокси-сервера, который обрабатывает несколько доменов и их шифрование SSL и перенаправляет запросы на обычный HTTP на Glassfish.
В самом приложении различие между клиентами может быть сделано через имя входа, которое они используют (роли / группы,...). Если просто использовать путь или домен для различения, достаточно легко получить доступ к защищенным ресурсам от разных клиентов. Если вы хотите получить информацию о домене, вы можете просто добавить заголовок прокси-сервера во входящий HTTP-запрос.
Что касается кандидатов на такой прокси, я могу порекомендовать NGINX, который легко настроить. Вы также можете использовать Apache или многие другие для этого.