Cookie已定义为weblogic.xml
<session-descriptor>
<cookie-name>A_JSESSIONID</cookie-name>
</session-descriptor>
当我们使用HTTPS连接时,A_JSESSIONID cookie没有安全状态。 打p安全扫描发现“没有设置安全标志的SSL cookie”问题。
我不能使用
<cookie-secure>true</cookie-secure>
因为我们的应用程序也可以被HTTP使用。
我试图在“过滤器”中设置安全状态
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
try {
HttpServletRequest request = (HttpServletRequest) servletRequest;
Cookie[] cookies = request.getCookies();
if(cookies!=null && servletRequest.isSecure())
{
for (Cookie cookie : cookies) {
logger.debug("set Secure for cookie: " + cookie.getName());
cookie.setSecure(true);
}
}
...
记录器显示A_JSESSIONID cookie。但这是行不通的。它仍然不安全。
我还找到了一条信息(https://docs.oracle.com/cd/E23943_01/web.1111/e13711/thin_client.htm#SCPRG139):
WebLogic Server使用两个cookie:JSESSIONID cookie和 _WL_AUTHCOOKIE_JSESSIONID cookie。默认情况下,JSESSIONID cookie永远不安全,但是_WL_AUTHCOOKIE_JSESSIONID cookie始终是安全的 安全。仅当加密通信时才发送安全cookie 通道正在使用中。假设使用标准的HTTPS登录名(HTTPS是 加密的HTTP连接),您的浏览器会同时获得两个cookie。
AuthCookieEnabled在WebLogic控制台中设置为true,但是在我的cookie列表中看不到_WL_AUTHCOOKIE_A_JSESSIONID。只是A_JSESSIONID,没有安全状态。
如何动态设置weblogic cookie的安全性? 或者如何找到_WL_AUTHCOOKIE_A_JSESSIONID?
谢谢。
答案 0 :(得分:-1)
这是我到目前为止对这个主题的阅读-
这样的代码
Result_0_2.csv
现在,当您在http中访问应用程序时,您不会看到此cookie,而通过https访问时,您将看到此cookie。
希望这会有所帮助