账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    maven工程在eclipse中跑向cookie中添加值成功,部署到tomcat添加就不成功了
    29
    0

    项目是在用户登陆成功后,随即生成一个数,“token”作为键添加到cookie中,在eclipse中跑,用360,谷歌浏览器访问都能看到有这个cookie值,但是部署到远程tomcat服务器上,再访问就没有看到cookie值了
    @RequestMapping(value="/user/login", method=RequestMethod.POST)

    @ResponseBody
    public E3Result login(String username, String password,
            HttpServletRequest request, HttpServletResponse response) {
        E3Result e3Result = loginService.userLogin(username, password);
        //判断是否登录成功
        if(e3Result.getStatus() == 200) {
            String token = e3Result.getData().toString();
            //如果登录成功需要把token写入cookie
            CookieUtils.setCookie(request, response, "token", token);
            
        }
        
        //返回结果
        return e3Result;
    }
    
    

    public E3Result userLogin(String username, String password) {

        // 1、判断用户和密码是否正确
        //根据用户名查询用户信息
        TbUserExample example = new TbUserExample();
        Criteria criteria = example.createCriteria();
        criteria.andUsernameEqualTo(username);
        //执行查询
        List<TbUser> list = userMapper.selectByExample(example);
        if (list == null || list.size() == 0) {
            //返回登录失败
            return E3Result.build(400, "用户名或密码错误");
        }
        //取用户信息
        TbUser user = list.get(0);
        //判断密码是否正确
        if (!DigestUtils.md5DigestAsHex(password.getBytes()).equals(user.getPassword())) {
            // 2、如果不正确,返回登录失败
            return E3Result.build(400, "用户名或密码错误");
        }
        // 3、如果正确生成token。
        String token = UUID.randomUUID().toString();
        // 4、把用户信息写入redis,key:token value:用户信息
        
        user.setPassword(null);
        jedisClient.set("SESSION:" + token, JsonUtils.objectToJson(user));
        // 5、设置Session的过期时间
        jedisClient.expire("SESSION:" + token, SESSION_EXPIRE);
        // 6、把token返回
         
        return E3Result.ok(token);
    }
    
    
    

    private static final void doSetCookie(HttpServletRequest request, HttpServletResponse response,

            String cookieName, String cookieValue, int cookieMaxage, boolean isEncode) {
        try {
            if (cookieValue == null) {
                cookieValue = "";
            } else if (isEncode) {
                cookieValue = URLEncoder.encode(cookieValue, "utf-8");
            }
            Cookie cookie = new Cookie(cookieName, cookieValue);
            if (cookieMaxage > 0)
                cookie.setMaxAge(cookieMaxage);
            if (null != request) {// 设置域名的cookie
                String domainName = getDomainName(request);
                System.out.println(domainName);
                if (!"localhost".equals(domainName)) {
                    cookie.setDomain(domainName);
                }
            }
            cookie.setPath("/");
            response.addCookie(cookie);
        } catch (Exception e) {
             e.printStackTrace();
        }
    }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 想念你给的柔情 普通会员 1楼

      这可能是因为eclipse没有正确地配置Maven到Tomcat的部署配置。以下是一些可能的解决方案:

      1. 重启eclipse和Tomcat:这可能有助于解决一些配置问题。

      2. 检查Tomcat的配置:确保Tomcat在正确的路径下运行,并且有权限访问cookie。

      3. 更改Maven的部署位置:Maven默认将项目部署到项目的根目录下。如果你想要将项目部署到特定的目录,你可以使用mvn clean deploy命令。这将清理项目,创建部署文件,然后部署到指定的目录。

      4. 检查Maven的版本:确保Maven版本与Tomcat的版本匹配。如果Maven版本过旧,可能会导致问题。

      5. 更改Tomcat的默认端口:如果你的项目需要特定的端口,你可以更改Tomcat的默认端口。这可能需要重启Tomcat。

      6. 检查Cookie的路径:如果你的Cookie在Tomcat的部署目录下,确保路径正确。

      7. 如果以上都无效,你可能需要检查你的eclipse和Tomcat的配置。可能需要检查Tomcat的属性文件或者eclipse的配置文件。

      希望这些解决方案能帮助你解决问题。如果问题仍然存在,你可能需要寻求更专业的帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部