Я использую Apache Camel для размещения REST API для другого приложения верблюда.Как защитить этот REST API, он доступен только через HTTPS?
Я использую Camel 3.0.0-M1.Для REST API я использую REST DSL и компонент Camel-Jetty.Из других вопросов о SO и списке рассылки верблюдов я узнал, что мне просто нужно настроить компонент jetty для включения SSL.
Вот что я придумал:
<bean id="securejetty" class="org.apache.camel.component.jetty9.JettyHttpComponent9">
<property name="sslContextParameters" ref="sslContextParameters" />
</bean>
<camel:sslContextParameters id="sslContextParameters">
<camel:keyManagers keyPassword="Linux01!">
<camel:keyStore resource="/etc/certs/KeyStore.jks" password="Linux01!"/>
</camel:keyManagers>
</camel:sslContextParameters>
<restConfiguration component="securejetty" contextPath="api/v0" port="9091" apiContextPath="api-doc" apiContextListing="false" enableCORS="true" host="0.0.0.0">
<dataFormatProperty key="prettyPrint" value="true"/>
<apiProperty key="base.path" value="/opcua"/>
<apiProperty key="api.version" value="0.0.1"/>
<apiProperty key="api.title" value="Blackbox REST API"/>
<apiProperty key="api.description" value="The REST API for the Blackbox Project"/>
<apiProperty key="api.contact.name" value="Blackbox"/>
<corsHeaders key="Access-Control-Allow-*" value="0.0.0.0"/>
<corsHeaders key="Access-Control-Max-Age" value="300"/>
</restConfiguration>
Я ожидал, что мой API будет доступен только через https.Но на самом деле он по-прежнему доступен через http, а не через https.Я частично выяснил, почему: «sslContextParameters» полностью игнорируется, поэтому верблюд не знает, что компонент jetty должен выполнять https.Я проверил это с присвоением переменной keyStore фиктивного пути.Это даже не выдает ошибку, даже если она объявлена как ресурс, что заставляет меня поверить, что sslContextParameters полностью игнорируется.Мне нужно знать, как я могу защитить свой REST API на верблюжьей моле, чтобы он соответствовал стандартам безопасности моих компаний.