Apache CXF 是一个开源的 Web 服务框架,它提供了对多种协议(如 SOAP、RESTful HTTP)的支持,并且可以轻松地集成到 Java 应用程序中。CORS(跨源资源共享)是一种机制,它使用额外的 HTTP 头来告诉浏览器,让运行在一个源(domain)上的 Web 应用被准许访问来自不同源服务器上的指定的资源。
在 CXF 中配置 CORS 可以通过多种方式实现,以下是一个简单的示例,展示了如何在 CXF 服务中启用 CORS 支持:
首先,你需要添加一个 CORS 过滤器到你的 CXF 服务中。这可以通过在 web.xml
文件中配置一个过滤器来实现。
<filter>
<filter-name>cors</filter-name>
<filter-class>org.apache.cxf.rs.security.cors.CrossOriginResourceSharingFilter</filter-class>
<init-param>
<param-name>allowHeaders</param-name>
<param-value>Content-Type, Accept, X-Requested-With</param-value>
</init-param>
<init-param>
<param-name>allowedOrigins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>allowedMethods</param-name>
<param-value>GET, POST, PUT, DELETE, OPTIONS</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cors</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如果你更喜欢使用注解而不是 web.xml
配置,你可以在你的服务实现类上使用 @CrossOriginResourceSharing
注解。
import org.apache.cxf.rs.security.cors.CrossOriginResourceSharing;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Path("/example")
public class ExampleService {
@GET
@CrossOriginResourceSharing(
allowAllOrigins = true,
allowHeaders = {"Content-Type", "Accept"},
methods = {"GET", "POST"}
)
public String exampleMethod() {
return "Hello, CORS!";
}
}
*
允许所有来源,而应该指定具体的允许来源。领取专属 10元无门槛券
手把手带您无忧上云