是否可以在Websphere Application Server Liberty Profile V8.5中应用跨源资源共享(CORS)?
我搜索了红皮书,但无法找到IBM提及它的任何内容。 (http://www.redbooks.ibm.com/abstracts/sg248076.html?Open)
Access-Control-Allow-Origin: *
答案 0 :(得分:9)
您必须将以下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>
答案 1 :(得分:6)
从2016年1月的Beta版开始(编辑:现在在Liberty 8559中),WebSphere Liberty本身支持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规范(https://www.w3.org/TR/cors/),因此它们非常自我解释。
链接到测试版:https://developer.ibm.com/wasdev/blog/2016/01/15/beta-websphere-liberty-and-tools-january/
答案 2 :(得分:1)
从ArthurDM扩展到CORS: 记录的页面没有为我解释。我的设置如下,我只想与您分享:
最终,以下角色设置成功了:
<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" />
祝你好运,我希望它有所帮助。
答案 3 :(得分:0)
对于那些在使用IBM Websphere Application Server时寻找解决方法并寻找应用CORS的答案的人。 (您应该以编程方式执行此操作)我知道操作系统正在寻找答案而不使用Java代码或其他...这可能对其他人有帮助.. 编写一个过滤器,让您以编程方式设置响应头。如:
lectures/index.html.erb