一、问题说明 因需要修复启用了OPTIONS方法的漏洞,现修改应用的web.xml文件: 修改头文件规范为: <?xml version="1.0" encoding="UTF-8"?><web-ap
一、问题说明
因需要修复启用了OPTIONS方法的漏洞,现修改应用的web.xml文件:
修改头文件规范为:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
需要在应用的web.xml文件中增加:
<security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>HEAD</http-method> <http-method>OPTIONS</http-method> <http-method>TRACE</http-method> </web-resource-collection> <auth-constraint> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> </login-config> <session-config><cookie-config><http-only>true</http-only><secure>true</secure></cookie-config></session-config>
如果在web.xml中引用taglib标签需要加入<jsp-config></jsp-config>标签,如果不加应用安装失败
打包安装应用没有问题
二、出现异常信息
在调用的时候出现如下异常:
在WAS61下运行正常的项目,为啥迁移到was8.5就有问题呢?
查信息中心给出如下解释:
WAS8.5在验证EL表达式时比较严谨。
使用此属性来放宽对 EL 变量标识的检查。放宽检查行为等价于低于 V8.0 的 WebSphere Application Server 版本中所观察到的行为。
从 V8.0 开始,对 EL 变量标识的检查将更严格。现在,检查过程将检查 Java 保留关键字以及保留 EL 关键字。在 V8.0 之前,检查过程将仅检查保留 EL 关键字。
如果 JSTL/EL 脚本中所使用的任何变量标识中包括任何保留 JSP 关键字,那么该变量标识将无法转换,从而导致异常。处理这种异常的首选方法是修改 JSTL/EL 代码,以便不使用保留关键字作为变量名称。但是,如果无法这样做或者这样做不可行,那么将此属性设置为 true 以放宽检查级别,即放宽至低于 V8.0 的版本级别的检查级别。
可以在以下网址找到保留 JSP 关键字的列表:
http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html#bnail
三、解决方案
设置JVM定制属性:
点击服务器 > 服务器类型,然后单击 WebSphere 应用程序服务器 > server_name 或 WebSphere 代理服务器 > server_name。然后,在“服务器基础结构”下,单击 Java 和进程管理 > 进程定义 > Java 虚拟机 > 定制属性。
name:org.apache.el.parser.SKIP_IDENTIFIER_CHECKvalue:true
使用wsadmin脚本修改:
server=AdminConfig.getid('/Server:/')jvm = AdminConfig.list('JavaVirtualMachine', server)AdminConfig.create('Property' , jvm,'[[name "org.apache.el.parser.SKIP_IDENTIFIER_CHECK"][value "true"]]')AdminConfig.save()
重启即可!
参考:http://www.ibm.com/support/knowledgecenter/zh/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/xrun_jvm.html