如何在Websphere Application Server Liberty Profile V8.5中定义CORS

时间:2014-06-18 05:52:12

标签: cors websphere-liberty

是否可以在Websphere Application Server Liberty Profile V8.5中应用跨源资源共享(CORS)?

我搜索了红皮书,但无法找到IBM提及它的任何内容。 (http://www.redbooks.ibm.com/abstracts/sg248076.html?Open

Access-Control-Allow-Origin: *

http://enable-cors.org/server.html

4 个答案:

答案 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: 记录的页面没有为我解释。我的设置如下,我只想与您分享:

  • 使用Liberty Profile 8.5.5.9。因此,CORS对自由配置文件的补充不再仅限于测试版。
  • 使用JavaEE批处理并连接批处理以将其所有数据放入存储库(而不是内存中)。
  • 我想将batchManagement-1.0功能用于随附的批处理api。
  • Angular 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" />
祝你好运,我希望它有所帮助。

答案 3 :(得分:0)

对于那些在使用IBM Websphere Application Server时寻找解决方法并寻找应用CORS的答案的人。 (您应该以编程方式执行此操作)我知道操作系统正在寻找答案而不使用Java代码或其他...这可能对其他人有帮助.. 编写一个过滤器,让您以编程方式设置响应头。如:

lectures/index.html.erb