坐上坟头看鬼哭 2020-06-12 16:33 采纳率: 0%
浏览 268

tomcat6换7之后为什么在jsp页面session.setAttribute( ),后端java代码怎么都获取不到这个属性?

tomcat6换7之后为什么在jsp页面session.setAttribute( ),后端java代码怎么都获取不到这个属性?图片说明

后端代码:
package com.cdc.core.filter;

import java.io.IOException;
import java.security.interfaces.RSAPrivateKey;
import java.util.HashMap;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.cdc.core.util.RsaUtil;

/**

  • 验证码验证过滤器及防止CSRF攻击
  • @author SnoopyChen (ceo@vmeitime.com)
    *
    */
    public class CodeFilter implements Filter {

    public void destroy() {

    }

    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest)request;
    HttpSession session = req.getSession();

    RSAPrivateKey privateKey = (RSAPrivateKey)session.getAttribute("privateKey");
    String random = req.getParameter("random");
    String username = req.getParameter("j_username");
    String tokenStr = req.getParameter("tokenStr");
    
    try{
        String sessionTokenStr = req.getSession().getAttribute("tokenStr").toString();
    
        String sRand = (String)session.getAttribute("rand");
    
        if( null != sRand && null!=random && sessionTokenStr.equals(RsaUtil.decryptStringByJs(privateKey, tokenStr))) {
            if(sRand.equalsIgnoreCase(RsaUtil.decryptStringByJs(privateKey,random.trim()))){
                session.removeAttribute("rand");
    
                HashMap<Object,Object> map=new HashMap(request.getParameterMap());  
                String password = request.getParameter("j_password").toString();
                password = RsaUtil.decryptStringByJs(privateKey, password);
                map.put("j_password", password);
                map.put("j_username", RsaUtil.decryptStringByJs(privateKey, username));
    

    // // System.out.println(password);

                ParameterRequestWrapper wrapRequest=new ParameterRequestWrapper(req,map);      
                chain.doFilter(wrapRequest, response);  
    

// chain.doFilter(request, response);
}else{
request.setAttribute("codeError","验证码输入不正确!");
request.setAttribute("username",RsaUtil.decryptStringByJs(privateKey, username));
//request.getRequestDispatcher("/user/login.jsp").forward(request,response);
request.getRequestDispatcher("/").forward(request,response);
}
}else{
request.getRequestDispatcher("/").forward(request,response);
}
}catch (Exception e){
e.printStackTrace();
request.setAttribute("codeError","登录失败,请重试!");
request.getRequestDispatcher("/").forward(request,response);
}

}

public void init(FilterConfig arg0) throws ServletException {

}

}

  • 写回答

1条回答 默认 最新

  • Timor_D 2020-06-12 17:13
    关注

    把代码贴出来

    评论

报告相同问题?

悬赏问题

  • ¥20 fluent无法启动
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。