jfinal shiro login

D-_-D 发布于 2015/11/25 15:43
阅读 327
收藏 0

@玛雅牛 你好,想跟你请教个问题:

jfinal 2.0 用shiro,login 的时候绑定了用户

ThreadContext.bind(subject); //4、登录,即身份验证 
subject.login(token);
Subject user = SecurityUtils.getSubject(); 
logger.info("User is authenticated:  " + user.isAuthenticated());
token.setRememberMe(true);
但是由于我们每次进去 要加载一个页面,因此每次会用

SecurityUtils.getSubject().isAuthenticated()
来进行判断,如果true 就render(a.jsp) ,false  就redirect(b.jsp)

本地测试是OK的,但是去服务器上,第一次登录之后,后面的每次刷新 什么的,或者用<a> 标签的跳转,发展都是false,即使我在session里面放了参数,也不能,也就是说 感觉每次刷新 都是是一个新的线程了,以前线程绑定的东西 就不在了- -,有什么办法吗? 测试环境用的nginx,本地没用。 

加载中
1
玛雅牛
玛雅牛

本地是正常的,说明业务逻辑相关代码是OK的。
服务器上这样,首先,直接访问应用(比如8080)绕过nginx,若正常,说明问题在nginx,若不正常,先解决服务器端web服务器的配置问题。

nginx,检查cooki相关的配置是否已经添加了:

proxy_pass   http://192.168.1.12:11080/v1/;

proxy_cookie_path /v1/ /;

proxy_set_header   Cookie $http_cookie;

1
D-_-D
D-_-D

谢谢,找到原因了,因为配置了nginx  的

proxy_redirect http://10.1.7.xx/app/ /

这样配置是因为  应用规定要app 结尾,而想向本地一样启动,不要app,导致每次 都是一个新的session 。。。

JFinal
JFinal
建议设置此回复为最佳答案,分享给碰到同样问题的人
返回顶部
顶部