BlazeDS через HTTPS - PullRequest
       17

BlazeDS через HTTPS

3 голосов
/ 05 октября 2011

Я пытаюсь настроить BlazeDS для работы через HTTPS. У нас есть Apache спереди, который настроен на перенаправление всего http-трафика на https. Затем Apache связывается с приложением (JBoss AS 5.1) через http.

Я перепробовал множество конфигураций для BlazeDS, и, наконец, у меня сработало следующее решение:

услуги-config.xml

<services-config>
<services>
    <service-include file-path="remoting-config.xml" />
    <service-include file-path="messaging-config.xml" />
</services>

<channels>
    <channel-definition id="my-secure-amf"
        class="mx.messaging.channels.SecureAMFChannel">
        <endpoint
            url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure"
            class="flex.messaging.endpoints.AMFEndpoint" />
        <properties>
            <add-no-cache-headers>false</add-no-cache-headers>
        </properties>
    </channel-definition>
    </channels>
</services-config>

Remoting-config.xml

<service id="remoting-service" class="flex.messaging.services.RemotingService">

<adapters>
    <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
</adapters>

<default-channels>
    <channel ref="my-secure-amf"/>
</default-channels>

<destination id="MyService" >
    <properties>
        <source>path.to.my.Service</source>
        <scope>application</scope>
    </properties>
</destination>

Дело в том, что в канале my-secure-amf я использую mx.messaging.channels.SecureAMFChannel в определении канала и flex.messaging.endpoints.AMFEndpoint (не flex.messaging.endpoints.SecureAMFEndpoint). Вероятно, это связано с настройкой Apache-Jboss, но я не нашел ничего, что объясняет, что на самом деле определяют различные теги.

Чтобы разобраться во всем этом, кто-нибудь может объяснить, что происходит при определении каналов и конечной точки, используя разные URL-адреса и классы?

1 Ответ

5 голосов
/ 05 октября 2011

Это работает, потому что приложение Flex создает SecureAMFChannel и использует транскодированную информацию url (url = https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure) для подключения к серверу Apache. Однако, поскольку Apache настроен для подключения к приложению по HTTP, вы не можетеиспользуйте безопасную конечную точку (конечная точка будет проверять «https» перед вашей схемой URL-адреса и выдает ошибку, если она не найдена).

Я использую точно такую ​​же конфигурацию в одном из моих приложений(У меня аппаратный балансировщик вместо сервера Apache).

...