如何在Websphere Application Server Liberty Profile V8.5中定义CORS
是否可以在WebSphereApplicationServerLiberty概要V8.5中应用跨源资源共享(CORS) 我搜索了这本红皮书,但找不到有关它的任何信息。 () 我不可能像这样通过编程方式设置标题:如何在Websphere Application Server Liberty Profile V8.5中定义CORS,cors,websphere-liberty,Cors,Websphere Liberty,是否可以在WebSphereApplicationServerLiberty概要V8.5中应用跨源资源共享(CORS) 我搜索了这本红皮书,但找不到有关它的任何信息。 () 我不可能像这样通过编程方式设置标题: Access-Control-Allow-Origin: * ()您必须将以下JAR添加到您的WEB-INF/lib文件夹中: 在web.xml中,您必须添加以下规则: <filter> <filter-name>CORS</filter-
Access-Control-Allow-Origin: *
()您必须将以下JAR添加到您的
WEB-INF/lib
文件夹中:
web.xml
中,您必须添加以下规则:
<filter>
<filter-name>CORS</filter-name>
<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CORS</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
科尔斯
com.thetransactioncompany.cors.CORSFilter
科尔斯
/*
适用于那些在使用IBM Websphere Application Server并寻找应用CORS的答案时寻找解决方法的人。
(你应该以编程的方式来做这件事)我知道op正在寻找答案,而不使用java代码或其他。。。这可能对其他人有帮助。。
编写一个过滤器,使您能够以编程方式设置响应头。例如:
public class YourFilter implements javax.servlet.Filter{
@Override
public void doFilter(ServletRequest request,ServletResponse servletResponse , FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse ) servletResponse ;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Headers","Access-Control-Allow-Origin, X-Requested-With", bla,bla...);
}
}
从2016年1月的测试版开始(编辑:现在在Liberty 8559中),WebSphereLiberty以本机方式支持CORS。您只需使用所需的CORS选项配置server.xml,下面是一个示例:
<cors domain="/sampleApp/path"
allowedOrigins="https://alice.com:8090"
allowedMethods="GET, DELETE, POST"
allowedHeaders="Accept, MyRequestHeader1"
exposeHeaders="MyResponseHeader1"
allowCredentials="true"
maxAge="3600" />
domain属性用于您希望应用此配置的应用程序根,这意味着它不会影响任何其他上下文根。其他7个属性完全遵循官方的CORS规范(),因此它们是非常不言自明的
链接到beta:以从ArthurDM扩展到CORS: 有文档记录的页面对我解释不够。我的设置如下,我只想与您分享:
- 使用Liberty Profile 8.5.5.9。因此,CORS对liberty profile的添加不再只是测试版
- 使用JavaEE批处理并连接批处理以将其所有数据放入存储库(而不是内存)
- 我想将batchManagement-1.0特性用于它附带的批处理的RESTAPI
- 角度1
<cors domain="/ibm/api"
allowedOrigins="http://localhost:9080"
allowedMethods="GET, POST, PUT, DELETE"
allowedHeaders="Accept, Accept-Language, Content-Language, Content-Type"
exposeHeaders="Content-Type"
allowCredentials="true"
maxAge="3600" />
祝你好运,我希望这会有所帮助。我目前正在调查:我的情绪低落(我可以在网络服务中看到我的指纹)!唯一的问题是,该服务永远不会返回,我的浏览器一直在等待响应……请查看我对Liberty中官方CORS支持的回答。如果war仅包含html和javascript,则不要认为这是可行的。是否有其他方法可以配置WebSphere liberty server以针对这种情况启用CORs。@DarVar您是否已经解决了问题?如果你只提供HTML和JavaScript,你就不会有这些问题。仅当您在另一个套接字上调用Web服务时,该方法才起作用,但不幸的是,在我的例子中,需要更改类加载模式以使其起作用,这是不可取的。这里可以找到该方法的更详细解释。