如何在不更改源代碼(帶註釋的類或beans.xml)的情況下配置Apache CXF CrossOriginResourceSharingFilter
?使用Spring配置Apache CXF CrossOriginResourceSharingFilter
在JAX-RS: CORS example配置是硬編碼:
這裏是示出如何CrossOriginResourceSharing註釋可以在資源和個體的方法的水平被施加在測試代碼。
[...]
@GET @CrossOriginResourceSharing( allowOrigins = { "http://area51.mil:31415" }, allowCredentials = true, exposeHeaders = { "X-custom-3", "X-custom-4" } ) @Produces("text/plain") @Path("/annotatedGet/{echo}") public String annotatedGet(@PathParam("echo") String echo) { return echo; }
我用的beans.xml配置allowOrigins
屬性:
<bean id="cors-filter" class="org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter">
<property name="allowOrigins">
<list>
<value>myserver1</value>
<value>myserver2</value>
</list>
</property>
</bean>
我以爲我可以得到JNDI屬性,但它不是允許添加List
(見Servlet Specification 2.5)。我需要一種方法來爲CORS *
配置一個空的List
。
<bean id="cors-filter"
class="org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter">
<property name="allowOrigins"><
<jee:jndi-lookup jndi-name="CORS/origins"/>
</property>
</bean>
什麼是配置在可重複使用的WAR的CrossOriginResourceSharingFilter
意/首選的方法?