1

この非常に初歩的な質問ですみません。

現在、CXF でいくつかの RESTful/SOAP Web サービスを実行しています。(実際には 3 つ) ここにサンプルがあります

<blueprint ...>
 <reference id="myWebServiceRef"
  interface="com.keeboi.samples.MyWebService" />
 <jaxrs:server address="/my-web-service" id="myWebService">
  <jaxrs:serviceBeans>
   <ref component-id="myWebServiceImpl" />
  </jaxrs:serviceBeans>
 </jaxrs:server>
 <bean id="myWebServiceImpl"
  class="com.keeboi.samples.MyWebServiceImpl">
  <property name="myWebService" ref="myWebServiceRef" />
 </bean>
</blueprint>

そして、私はajax呼び出しを介してそれらにアクセスします

$.ajax({
    url : ws_url + id,
    type : "GET",
    dataType : 'text',
}).done(function(data) {
    // Magic happens
}); 

私が望むのは、これらの Web サービスが内部で使用されているため、ユーザーが行った要求にアクセスできないようにすることです。これらの Web サービスを保護するにはどうすればよいですか?

追加:

<jaxrs:properties>
  <entry key="org.apache.cxf.endpoint.private" value="true" />
</jaxrs:properties>

それらをプライベートにしますが、私のajaxリクエストにはアクセスできません...明らかに何かが欠けています。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

ajaxの部分がよくわかりません。ただし、cxfセキュリティ部分に答えてみてください

ブループリント構成で、以下の構成を追加します。

 <httpj:engine-factory bus="cxf">
 <httpj:engine port="9081">
<httpj:tlsServerParameters>
  <sec:keyManagers keyPassword="skpass">
       <sec:keyStore type="JKS" password="sspass"
             resource="keystore/serviceKeystore.jks"/>
  </sec:keyManagers>
  <sec:trustManagers>
      <sec:keyStore type="JKS" password="sspass"
            resource="keystore/serviceKeystore.jks"/>
  </sec:trustManagers>
  <sec:cipherSuitesFilter>
    <sec:include>.*_EXPORT_.*</sec:include>
    <sec:include>.*_EXPORT1024_.*</sec:include>
    <sec:include>.*_WITH_DES_.*</sec:include>
    <sec:include>.*_WITH_AES_.*</sec:include>
    <sec:include>.*_WITH_NULL_.*</sec:include>
    <sec:exclude>.*_DH_anon_.*</sec:exclude>
  </sec:cipherSuitesFilter>
  <sec:clientAuthentication want="false" required="false"/>
</httpj:tlsServerParameters>

詳細については、[SSL の構成]を参照してください。

于 2016-12-29T05:16:27.330 に答える