对不起这个非常无聊的问题。
我目前在CXF上运行了一些RESTful / SOAP Web服务。 (实际上有三个)这是一个样本
<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请求无法访问......我显然在这里遗漏了一些东西。有人能指出我正确的方向吗?
答案 0 :(得分: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]获取更多信息1