古老的applet,关于cookie的httponly的解决办法
首先提醒一下使用WAS8产品的朋友们,WAS8中的cookie的httponly属性默认是true。下面讲述我的问题,我们的应用程序中的applet,会用到cookie中的sessionID,当升级到WAS8的时候报错,原因是前面讲的WAS8中的cookie的httponly属性默认是true。当然如果把WAS8的默认设置cookie的httponly属性改成false,是可以正常运行的。不过难缠的客户要求我们不改WAS设置,而是通过修改代码来解决这个问题。我查了一下api,也没找到URLConnection中能设置cookie的httponly为false的方法。还有什么修改代码的办法能设置cookie的httponly为false吗?或者还有其他的办法在applet中取到sessionID吗?server端:
String ck = req.getHeader("cookie");
URLConnection con = url.openConnection();
con.setRequestProperty("CONTENT_TYPE", "application/octet-stream");
con.setRequestProperty("cookie", ck); con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
oos = new ObjectOutputStream(con.getOutputStream());
applet端:
String sessionId = getParameter("SessionId");
String strUrl = getCodeBase().toString();
strUrl = strUrl.concat(programPath).concat(sessionId); URL url = new URL(strUrl);
URLConnection con = url.openConnection();
con.setRequestProperty("CONTENT_TYPE","application/octet-stream");
con.setUseCaches(false);
con.setDoInput(true);
con.setDoOutput(true);
ObjectInputStream ois = new ObjectInputStream(con.getInputStream()); --------------------编程问答-------------------- --------------------编程问答-------------------- 应该不可以,如果可以的话,病毒木马就更加放肆了
补充:Java , Java SE