2010-05-26 2 views
31

Возможно ли запустить один компонент @WebService одновременно как безопасный, так и небезопасный, предпочтительно с использованием одного и того же URL-адреса, кроме разницы в протоколе http/https?Glassfish JAX-WS бок о бок SSL/небезопасный EJB webservice

Я могу запустить службу безопасным или небезопасным с помощью:

<transport-guarantee>CONFIDENTIAL</transport-guarantee> 

или

<transport-guarantee>NONE</transport-guarantee> 

внутри Солнца на EJB jar.xml

IE.

<ejb> 
    <ejb-name>MyEJB</ejb-name> 
    <webservice-endpoint> 
    <port-component-name>MyWebService</port-component-name> 
    <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </webservice-endpoint> 
</ejb> 

Предложения?

+0

Я не знаю подробностей ... поэтому я не буду представлять это как ответ ... Возможно, вы захотите вникать в тему объединения портов Гризли. Похоже, это позволит вам делать то, что вы хотите. – vkraemer

+0

Спасибо, vkraemer Я посмотрю на это. – Justin

+3

Что происходит с NONE и прослушивателем с поддержкой HTTP SSL?NONE не препятствует работе SSL. Другой вариант, если вы можете установить apache, httpd w/mod_ssl + mod_jk/ajp, вероятно, сработает. – Chase

ответ

2

Почему вы просто не прокси-сервер приложений с HTTP-сервером Apache или подобным? Я обычно делаю этот путь и оставляю SSL-подтверждение/открытое текстовое соединение с HTTP перед ним.

1

просто удалите <transport-guarantee>CONFIDENTIAL</transport-guarantee>, ваши бобы будут доступны также на http и https. <transport-guarantee>CONFIDENTIAL</transport-guarantee> означает строгую защиту, любой запрос http-запроса перенаправляется на https (ssl).

удаляя это <transport-guarantee>CONFIDENTIAL</transport-guarantee>, вы получите большую гибкость.

1

Я знаю, что это довольно старый вопрос. Тем не менее, я чувствую, что предоставляю этот ответ, так как я недавно столкнулся с одной и той же проблемой.

Согласно документации Oracle:

  • Укажите КОНФИДЕНЦИАЛЬНО, когда приложение требует, чтобы данные передаются таким образом, чтобы предотвратить другие объекты от наблюдения содержания передачи.
  • Укажите NONE, чтобы указать, что контейнер должен принимать ограниченные запросы по любому соединению, включая незащищенную.

Поскольку это просто транспортно-гарантия, значение NONE должен предоставить вам функцию, которую вы хотите, а именно веб-службы EJB отвечая как к HTTP и HTTPS запросов.

Проблема здесь ошибка в Glassfish, что, по-видимому, ограничивает вас либо принять HTTP или HTTPS запросы на ваш EJB Web Service:

В соответствии с последним заданием на jira проблема должна быть исправлена ​​и работает с Glassfish 4.0_b75.