V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
EPr2hh6LADQWqRVH
V2EX  ›  问与答

遇到了一个非常奇怪的问题, Tomcat 应用,大神求解

  •  
  •   EPr2hh6LADQWqRVH · 2017-02-22 21:16:38 +08:00 · 1921 次点击
    这是一个创建于 2833 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一个外包的项目,想把它搬到 docker 里面,

    webapps 里面的目录直接复制过来

    一切都很好,访问什么的各种都很顺畅,唯一的问题是登录不上

    从 log 里能看到数据库连接正常,都能打出返回的数据库数据

    就是登录不上

    各位大神能帮我分析一下可能是怎么回事么

    第 1 条附言  ·  2017-03-01 18:31:54 +08:00
    感谢各位大神,我搞懂为什么了。
    这个应用的密码哈希是根据用户的注册时间再加明文密码算出来的。。
    出于某种原因,这个时间和时区是相关的
    所以应用服务器上的时区必须和用户注册时候的时区一样。
    而 Docker 镜像里面的时区是 UTC
    醉醉的,太坑了这外包。
    12 条回复    2017-02-22 22:58:09 +08:00
    EPr2hh6LADQWqRVH
        1
    EPr2hh6LADQWqRVH  
    OP
       2017-02-22 21:35:06 +08:00
    密码是某种哈希,用 apache 的一个库算出来的,这个地方有什么坑吗
    akira
        2
    akira  
       2017-02-22 21:43:04 +08:00   ❤️ 1
    登录不上是啥意思
    zwl2012
        3
    zwl2012  
       2017-02-22 21:49:27 +08:00 via iPhone   ❤️ 1
    检查 session cookies 有没有写上,一般登录不了就是这两部的问题
    luban
        4
    luban  
       2017-02-22 21:51:27 +08:00 via iPhone   ❤️ 1
    原来是在 jetty 上的吗?
    可能是少 apache 的 common-codec 的 jar 包
    EPr2hh6LADQWqRVH
        5
    EPr2hh6LADQWqRVH  
    OP
       2017-02-22 21:52:20 +08:00
    @akira 好像用了一个叫 mybatis 的库,相关代码是

    ```
    UsernamePasswordToken token = new UsernamePasswordToken(login.getUserName(), login.getUserName());
    SecurityUtils.getSubject().login(token);
    ```
    就在最后.login 的时候抛出异常了。
    相同代码,一边无压力,另外一边在 docker 里面就死活过不去
    EPr2hh6LADQWqRVH
        6
    EPr2hh6LADQWqRVH  
    OP
       2017-02-22 21:53:20 +08:00
    @luban 两边都是 apache
    EPr2hh6LADQWqRVH
        7
    EPr2hh6LADQWqRVH  
    OP
       2017-02-22 21:54:12 +08:00
    @zwl2012 cookie 没问题,就是 JSESSIONID 是个负数,不知道有关系没
    而且我找不见他把 session 写在哪里了,数据库没有,这东西不是 tomcat 自己放自己内存里的吧
    luban
        8
    luban  
       2017-02-22 21:54:31 +08:00 via iPhone
    你要对比下 tomcat 自带的 lib 包区别
    akira
        9
    akira  
       2017-02-22 22:31:52 +08:00
    异常日志呢
    EPr2hh6LADQWqRVH
        10
    EPr2hh6LADQWqRVH  
    OP
       2017-02-22 22:42:02 +08:00
    @akira 他代码里面接住了,然后就给我返回登录失败了。。异常就这么吃了。。
    我明天按 @luban 说的覆盖一下 tomcat 的自带 lib 看有没有区别。。
    akira
        11
    akira  
       2017-02-22 22:46:08 +08:00
    对了, UsernamePasswordToken 后面的参数不是应该一个用户名 一个密码的么
    EPr2hh6LADQWqRVH
        12
    EPr2hh6LADQWqRVH  
    OP
       2017-02-22 22:58:09 +08:00 via Android
    @akira 是我也注意到了,但他给我的这点源码就是这样,应用运行的挺好的……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3167 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:46 · PVG 21:46 · LAX 05:46 · JFK 08:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.