项目用的是spring boot 1.3 全javaconfig 配置

目的 :

我要踢出一个登录在线的用户,踢出后,剔出的用户再次访问服务器的时候会去到登录界面,

security 配置 :

http

.authorizeRequests()

.antMatchers("/app/views/assets/**", "/app/apk/**", "/assets/**", "/view/**")

.permitAll().anyRequest().authenticated()

.and()

.formLogin().loginPage("/login").loginProcessingUrl("/loginLoc")

.successHandler(customSuccessHandler).failureHandler(customErrorHandler)

.permitAll()

.and().sessionManagement().invalidSessionUrl("/login").maximumSessions(-1).maxSessionsPreventsLogin(true).sessionRegistry(sessionRegistry())

.and()

.and()

.logout().logoutSuccessUrl("/login").permitAll()

.and().csrf().disable();

踢出的代码:

List allPrincipals = sessionRegistry.getAllPrincipals();

for (int j = 0; j < allPrincipals.size(); j++) {

CustomUser customUser = (CustomUser) allPrincipals.get(j);

if (customUser.getUsername().equals(username)) {

List allSessions = sessionRegistry.getAllSessions(customUser, false);

if (allSessions != null) {

for (int i = 0; i < allSessions.size(); i++) {

SessionInformation sessionInformation = allSessions.get(i);

sessionInformation.expireNow();

sessionRegistry.removeSessionInformation(sessionInformation.getSessionId());

}

}

}

}

执行倒是成功了,踢出后sessionRegistry.getAllPrincipals()返回确实是少了一个(已经没有踢出的那个用户了)。

但是剔出的用户还是可以正常的访问服务器,按理来说,踢出后再次访问应该会找不到session然后跳转到登录去吗? 莫非还要我自己在写一个过滤器,每次都判断这个用户在不在sessionRegistry.getAllPrincipals()里面吗?

怎么才能正常工作 ?

java 登录踢出_spring security 4 如何踢出用户?相关推荐

  1. java记录登陆时间_Spring security如何实现记录用户登录时间功能

    一.原理分析 spring security提供了一个接口 AuthenticationSuccessHandler,该接口中只有一个方法,用来进行登录成功后的操作 public interface ...

  2. java 授权码模式_Spring Security OAuth2 授权码模式的实现

    写在前边 在文章OAuth 2.0 概念及授权流程梳理 中我们谈到OAuth 2.0的概念与流程,这里我准备分别记一记这几种授权模式的demo,一方面为自己的最近的学习做个总结,另一方面做下知识输出, ...

  3. java cs系统_Java课程设计——基于CS模式的用户管理系统

    Java笔记 Java项目设计思路: MVC设计模式: M:model:数据模型,类似于数据库中得一张表. V:view:视图,呈现给用户得操作界面,用户点击按钮等操作后会展示一些界面等. C:con ...

  4. java登录失败三次一小时后再等_Spring Security实现多次登录失败后账户锁定功能...

    在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...

  5. java oauth2登录以及权限_Spring Cloud集成Security OAuth 2.0权限鉴权验证示例

    Spring Cloud集成Security OAuth 2.0权限鉴权验证示例 一.背景说明 目前市场上微服务之间涉及到相互调用的问题,在这个过程中为了验证安全性,需要采用鉴权方式进行管理.目前主流 ...

  6. 登录判断_Spring Security之多次登录失败后账户锁定功能的实现

    在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...

  7. java登录密码验证失败_java – Spring Security:如果身份验证失败,则重定向到登录页面...

    我们有两种登录方式. >用户名和密码由请求标头中的其他应用程序发送.检查IT,如果用户名和密码正确,则进入.[为此编写自定义过滤器] >如果请求标头中不存在用户名和密码,则会显示登录屏幕. ...

  8. mysql 用户 多次登录失败_Spring Security之多次登录失败后账户锁定功能的实现

    在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...

  9. springsecurity 不允许session并行登录_Spring Security 实战干货:实现自定义退出登录...

    我是 码农小胖哥.天天有编程干货分享.觉得写的不错.点个赞,转发一下,关注一下.本文为个人原创文章,转载请注明出处,非法转载抄袭将追究其责任. 1. 前言 上一篇对 Spring Security 所 ...

最新文章

  1. 使用Netty,我们到底在开发些什么?
  2. Microsoft Visual Studio International Pack
  3. boost::log::to_log_manip用法的测试程序
  4. 在linux系统中安装matplotlib
  5. Linux crontab命令
  6. 微信账号公开买卖;华为:5G 火车站启动;小米 9 高通骁龙 855 全球首发 | 极客头条...
  7. warning C4995: strcat name was marked as #pragma deprecated
  8. ThreeJS 跨域
  9. [技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?
  10. LED显示屏安装方法
  11. 宏和js实现word内容替换
  12. 西瓜视频需要社区文化吗?
  13. 可以进行论文降重吗?
  14. C#控制键盘按键的常用方法
  15. 联筑赚:我国盘扣式脚手架行业发展概况与展
  16. 多目标优化详解【转载】
  17. 程序员必备技能之英语学习(一)
  18. css3立方体实现方式(position+transform)
  19. 一个小巧的富文本编辑器(simditor)
  20. 七牛云直播推流php,七牛云直播Android推流端之开速开发

热门文章

  1. Python入门100题 | 第057题
  2. c++常见的排序表与复杂度
  3. Windows任务管理器 explorer 进程
  4. 无需任何启动盘,在windows系统上一键安装linux(ubuntu)双系统的方法!
  5. python3根据地址批量获取百度地图经纬度
  6. spring boot integrated mybatis three ways!--转
  7. 这么多年,终于有人讲清楚 Transformer 了!
  8. 信用评分如何应用在风控策略中(二)
  9. 贝叶斯推断及其互联网应用(一):定理简介
  10. 审批政策中收入与负债核实