【学习、总结】Spring security 登陆超时处理

目标:

用户登陆超过一定时间,在页面做请求时,提示类似登陆已超时,请重新登陆信息。

实现:

1.超时时间配置(web.xml):

<session-config>     <!-- 10分钟 --> 
        <session-timeout>10</session-timeout>
        <tracking-mode>COOKIE</tracking-mode>
        <cookie-config>
            <secure>false</secure>
            <http-only>true</http-only>
        </cookie-config></session-config>

2.session超时过滤、ajax请求处理(spring-security.xml)

   <!-- invalidSession.htm 是一个不存在的页面 -->
   <session-management invalid-session-url="/invalidSession.htm"
            session-fixation-protection="newSession">
            <concurrency-control session-registry-ref="sessionRegistry"
                max-sessions="1" error-if-maximum-exceeded="true" />
    </session-management>

    <beans:bean id="sessionRegistry"
        class="org.springframework.security.core.session.SessionRegistryImpl" />

    <!-- 未登录的切入点 -->
    <beans:bean id="authenticationProcessingFilterEntryPoint"
        class="com.baozun.nebulaplus.web.controller.auth.MyLoginUrlAuthenticationEntryPoint">
        <beans:property name="loginFormUrl" value="/login.htm"></beans:property>
    </beans:bean>

3.继承LoginUrlAuthenticationEntryPoint  (MyLoginUrlAuthenticationEntryPoint.java)

public void commence(HttpServletRequest request, HttpServletResponse response,
                AuthenticationException authException) throws IOException, ServletException {
         // 如果是ajax请求
            if (RequestUtil.isAjaxRequest(request)) {
                String key = ErrorCodes.BUSINESS_EXCEPTION_PREFIX + ErrorCodes.INVALID_SESSION;
                Object[] args = new String[0];
                String message = messageSource.getMessage(key, args, key, LocaleContextHolder.getLocale());

                String jsonObject = "{\"message\":\"" + message + "\","
                        + "\"needlogin\":true,\"cause\":\"Access is denied\"}";
                ResponseUtil.writeJson(response, jsonObject);
                return;
            } else {
                super.commence(request, response, authException);
            }
        }

4.js 扩展ajax

success:function(data, textStatus){
        //成功回调方法增强处理
        if (data.denied) {
            wms.frame.notifyWarning(data.message);
        } else if (data.needlogin) {
               wms.frame.notifyWarning(data.message);
        } else{
               fn.success(data, textStatus);
              }
        }
时间: 2024-10-05 23:04:09

【学习、总结】Spring security 登陆超时处理的相关文章

Spring Security登陆

本文参考或摘录自:http://haohaoxuexi.iteye.com/blog/2154714 在上一篇中使用Spring Security做了一些安全控制,如Spring Security 自动生成登陆页面登陆以后便能正常使用系统.本文介绍Spring Security 自定义登陆页面以及相关的一些处理. Spring Security 之form-login. 1.使用form-login 自定义登陆页 2.使用form-login做登陆引导处理,即登陆成功后定向到其他页面 3.使用f

【Spring Boot】Spring Security登陆异常出路

Security 配置 package cn.young.greenhome.config; import cn.young.greenhome.module.auth.UserDetailsServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.spring

[转]Spring Security学习总结一

[总结-含源码]Spring Security学习总结一(补命名空间配置) Posted on 2008-08-20 10:25 tangtb 阅读(43111) 评论(27)  编辑  收藏 所属分类: Spring .Spring Security Spring Security学习总结一 在认识Spring Security之前,所有的权限验证逻辑都混杂在业务逻辑中,用户的每个操作以前可能都需要对用户是否有进行该项 操作的权限进行判断,来达到认证授权的目的.类似这样的权限验证逻辑代码被分散

spring security 安全框架remember me,demo学习

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50018001未经博主允许不得转载. 博主地址是:http://blog.csdn.net/freewebsys 1,spring security Spring Security 的前身是 Acegi Security ,是 Spring 项目组中用来提供安全认证服务的框架. 在安全框架这边使用最多的就是spring security. 论坛资料比较充实. 一个哥们写的例子,使

Spring Security 解析(六) —— 基于JWT的单点登陆(SSO)开发及原理解析

Spring Security 解析(六) -- 基于JWT的单点登陆(SSO)开发及原理解析 ??在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .Spring Security Oauth2 等权限.认证相关的内容.原理及设计学习并整理一遍.本系列文章就是在学习的过程中加强印象和理解所撰写的,如有侵权请告知. 项目环境: JDK1.8 Spring boot 2.x Spring Security 5.x ?

用spring security实现简单的登陆和权限角色控制

 随笔简介 spring版本:4.3.2.RELEASE+spring security 版本:4.1.2.RELEASE(其它不做说明) 所展示内容全部用注解配置 springmvc已经配置好,不作说明 会涉及到springmvc,spel,el的东西,不熟悉的同学可以先去看一下这方面内容,特别是springmvc 首先想一下,登陆需要什么,最简单的情况下,用户名,密码,然后比对数据库,如果吻合就跳转到个人页面,否则回到登陆页面,并且提示用户名密码错误.这个过程中应该还带有权限角色,并且贯穿整

[转]Spring Security学习总结二

原文链接: http://www.blogjava.net/redhatlinux/archive/2008/08/20/223148.html http://www.blogjava.net/redhatlinux/archive/2008/09/01/226010.html [总结-含源码]Spring Security学习总结二 Posted on 2008-09-01 10:08 tangtb 阅读(9518) 评论(12)  编辑  收藏 所属分类: Spring .Spring Se

Spring security 和 AOP 学习

1.Spring security 登录验证拦截器 资源管理拦截器 认证和授权:      认证:登录时候确实存在此用户. 登录要认证!      授权:登录后判断权限级别,然后赋予相应的操作权限. 2.代码实现思路: 用户登陆,会被AuthenticationProcessingFilter拦截,调用AuthenticationManager的实现,而且AuthenticationManager会调 用ProviderManager来获取用户验证信息(不同的Provider调用的服务不同,因为

Spring Security 从配置入门 学习讲解。刽子手------------securityConfig.xml

不知道我的web.xml 大家都理解了没.  废话确实有点多,可能很多知识点,大家都知道,可是我学的时候,压根什么都不懂啊.... 这篇我们要讲刽子手  securityConfig. 为什么要说他是刽子手呢?  因为他是无良掌柜的小工,直接的操盘手...... <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org