首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Logout/Session超时捕获spring security

在Spring Security中,Logout/Session超时捕获可以通过以下方式实现:

  1. 使用LogoutFilter拦截登出请求

LogoutFilter是Spring Security提供的一个过滤器,用于拦截登出请求并执行相应的登出操作。可以通过配置LogoutFilter来实现Logout功能。

代码语言:java
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .and()
            .logout()
                .logoutUrl("/my-logout")
                .logoutSuccessUrl("/");
    }
}

在上述代码中,我们通过配置logoutUrl来指定登出请求的URL,当用户访问该URL时,LogoutFilter会拦截请求并执行登出操作。

  1. 使用SessionManagementFilter检测Session超时

SessionManagementFilter是Spring Security提供的另一个过滤器,用于管理会话。当会话超时时,SessionManagementFilter会自动执行相应的操作。

代码语言:java
复制
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .and()
            .sessionManagement()
                .invalidSessionUrl("/invalid-session")
                .maximumSessions(1)
                .maxSessionsPreventsLogin(true)
                .expiredUrl("/session-expired");
    }
}

在上述代码中,我们通过配置invalidSessionUrl来指定Session超时时跳转的URL,同时还可以通过maximumSessionsmaxSessionsPreventsLogin来限制用户的最大会话数量。

总结:

Spring Security提供了LogoutFilterSessionManagementFilter两个过滤器,可以分别用于拦截登出请求和检测Session超时。通过配置这些过滤器,可以实现Logout/Session超时的捕获。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

spring boot之session的创建,销毁,超时,监听等等小结

一、 session简介 1. 服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器只能产生一个session,当新建一个窗口访问服务器时,还是原来的那个session。...3、 session的过期和超时与cookie的过期没有什么联系,都是可以分别进行设置的。但是当session或cookie中任意一方过期,那么用户就需要重新登录了。...的超时设置 1 在.yml里面或.xml配置文件里面 2 在创建sessionsession.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,...session将失效 四、 session的监听 监听session主要有三个接口,用这两个就够用了。...实现接口HttpSessionListener下的sessionCreated();//当session创建时。 和sessionDestroyed();//当session被销毁或超时时。

2.3K20

Spring Security入门案例

启动项目,Spring Security默认就开启了,此时访问localhost:8080/index就会被Spring Security拦截,跳转到内置的登录页面要求登录。...注销登录默认就开启了,默认是访问/logout,和/login一样都是Spring Security自己实现的,我们调用即可; 注销登录会清除服务器端的session,清除remember me等设置;...默认是不行的,因为Spring Security默认开启了CSRF校验,所有改变状态的请求都必须以POST方式提交,为了能验证我们这个例子,我们需要把CSRF校验关掉,即在如上logout代码后面加上如下的配置...以上是关于Spring Security的基本使用方法,使用数据库及其它特性将会在后面的文章中予以说明。 七、会话管理 在以上例子中,认证和授权都是Spring Security自动进行的。...的超时和安全可以在配置文件中设置: # 超时时间设置 server.servlet.session.timeout=3600s # 浏览器脚本将无法访问cookie server.servlet.session.cookie.http‐only

1.3K84

Spring Security

启动项目,Spring Security默认就开启了,此时访问localhost:8080/index就会被Spring Security拦截,跳转到内置的登录页面要求登录。...注销登录默认就开启了,默认是访问/logout,和/login一样都是Spring Security自己实现的,我们调用即可; 注销登录会清除服务器端的session,清除remember me等设置;...默认是不行的,因为Spring Security默认开启了CSRF校验,所有改变状态的请求都必须以POST方式提交,为了能验证我们这个例子,我们需要把CSRF校验关掉,即在如上logout代码后面加上如下的配置...以上是关于Spring Security的基本使用方法,使用数据库及其它特性将会在后面的文章中予以说明。 七、会话管理 在以上例子中,认证和授权都是Spring Security自动进行的。...的超时和安全可以在配置文件中设置: # 超时时间设置 server.servlet.session.timeout=3600s # 浏览器脚本将无法访问cookie server.servlet.session.cookie.http‐only

2K00

Spring Security+Spring Social+SpringBoot集成Restful可配置安全模块及代码生成器

//超时时间 gwf.security.code.sms.length //图片验证码长度(可跟在请求url参数后修改) gwf.security.code.sms.url //...需要图片验证码验证的url gwf.security.code.sms.expireIn //超时时间 gwf.security.social.qq.app-id //qq登录 appId gwf.security.social.qq.app-secret...自定义登录成功逻辑 示例请见 com.gwf.security.brower.authentication.MyAuthenticationSuccessHandler 通过实现 org.springframework.security.web.authentication.logout.LogoutSuccessHandler...接口 自定义退出成功逻辑 示例请见 com.gwf.security.brower.logout.MyLogoutSuccessHandler 通过实现 com.gwf.security.core.vaildate.code.ValidateCodeGenerator...和 com.gwf.security.core.social.GwfConnectView spring-boot-api-project-seed代码生成器使用方法 2.

2K20

Spring Boot+redis存储session,满足集群部署、分布式系统的session共享

java工程中,说到权限管理和安全认证,我们首先想到的是Spring Security和Apache Shiro,这两者均能实现用户身份认证和复杂的权限管理功能。...但是如果我们只是想实现身份认证(如是否登录、会话是否超时),使用session管理即可满足。本文目录如下: 目录:   1. 创建spring-boot项目   2. 用户管理   3....微信截图_20180512184322.png-66.2kB 四、spring-session配置 该部分为重点内容了,目的是实现访问资源时的安全认证、超时控制和用户登出功能。...= "/logout") public String logout(HttpSession session){ session.removeAttribute(session.getId...()); return "user logout success"; } 3、设置session过期时间 spring: datasource: driver-class-name

3.1K31

Spring Security的认证和授权

Spring Security提供的默认登出页面为/logout: 安全配置 Spring Security提供了用户名密码登录、退出、会话管理等认证功能,只需要配置即可使用。...将不会创建Session,但是如果应用中其他地方创建了Session,那么Spring Security将会使用它 stateless Spring Security将绝对不会创建Session,也不使用...若选用never,则指示Spring Security对登录成功的用户不创建Session了,但若你的应用程序在某地方新建了session,那么Spring Security会用它的。...会话超时 可以再sevlet容器中设置Session超时时间,比如设置Session有效期为3600秒,修改spring boot配置文件: server.servlet.session.timeout...=3600s session超时之后,可以通过Spring Security设置跳转的路径: http.sessionManagement().invalidSessionUrl("/login‐view

2.1K30

Spring Security---退出功能详解

Spring Security---退出功能详解 logout退出登录 默认的logout做了什么?...个性化配置 演示 LogoutSuccessHandler ---- logout退出登录 其实使用Spring Security进行logout非常简单,只需要在spring Security配置类配置项上加上这样一行代码...关于spring Security配置类的其他很多实现、如:HttpBasic模式、formLogin模式、自定义登录验证结果、使用权限表达式、session会话管理,。...我们下面就来看一下Spring Security默认在logout过程中帮我们做了哪些动作。 当前session失效,即:logout的核心需求,session失效就是访问权限的回收。...---- 个性化配置 虽然Spring Security默认使用了/logout作为退出处理请求路径,登录页面作为退出之后的跳转页面。

2K10

spring security ajax登录及返回

序 本文讲述一下如何自定义spring security的登录页,网上给的资料大多过时,而且是基于后端模板技术的,讲的不是太清晰,本文给出一个采用ajax的登录及返回的前后端分离方式。...security会默认拦截的路径,不了解spring security的人可能会纳闷,我请求这个路径,但是工程里头没有定义/login的request mapping,不要紧么。...http/intercept-url@requires-channel SECURITY_CONTEXT_FILTER SecurityContextPersistenceFilter http CONCURRENT_SESSION_FILTER...UsernamePasswordAuthenticationFilter spring-security-web-4.2.3.RELEASE-sources.jar!...doc spring security动态配置url权限 Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken

2.3K20
领券