shyboy0358 2014-07-13 00:05 采纳率: 0%
浏览 1389
已采纳

shiro登陆超时的问题

项目中登陆用到了shiro验证框架,session超时,shiro默认会迁移到登陆画面。现在想session超时想弹出一个对话框,不知该如何解决。




<bean id="dmpSessionListener" class="com.pactera.platform.reqm.web.util.DmpSessionListener"/> 

public class DmpSessionListener implements SessionListener{

@Override
public void onStart(Session session) {
    // TODO Auto-generated method stub
    System.out.println("onStart");

}

@Override
public void onStop(Session session) {
    // TODO Auto-generated method stub
    System.out.println("onStop");       
}

@Override
public void onExpiration(Session session) {
    // TODO

}

}
查了一下,有个监听session超时的方法,可是监听到应该怎样弹对话框呢,前台开发不熟悉。请大家赐教。

  • 写回答

3条回答 默认 最新

  • iteye_18867 2014-07-14 09:26
    关注

    这里不是使用监听 思路都一样,简单说下:
    如果你使用的是FormAuthenticationFilter,那么继承FormAuthenticationFilter覆盖onAccessDenied方法,方法实现:
    [code="java"] if (isLoginRequest(request, response)) {
    if (isLoginSubmission(request, response)) {
    return executeLogin(request, response);
    } else {
    return true;
    }
    } else {
    if(AjaxUtils.isAjaxRequest(WebUtils.toHttp(request))){
    HttpServletResponse res = WebUtils.toHttp(response);
    res.sendError(HttpServletResponse.SC_UNAUTHORIZED);

                }else{
                    redirectToLogin(request, response);
                }
    

    // saveRequestAndRedirectToLogin(request, response);
    return false;
    }[/code]
    然后前台设置ajax全局状态码处理 捕获401,给出提示或做进一步处理
    资源权限和角色权限同样可以使用这种方式!我想我说的够清楚了!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog