java 登录踢出_spring security 4 如何踢出用户?
项目用的是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 如何踢出用户?相关推荐
- java记录登陆时间_Spring security如何实现记录用户登录时间功能
一.原理分析 spring security提供了一个接口 AuthenticationSuccessHandler,该接口中只有一个方法,用来进行登录成功后的操作 public interface ...
- java 授权码模式_Spring Security OAuth2 授权码模式的实现
写在前边 在文章OAuth 2.0 概念及授权流程梳理 中我们谈到OAuth 2.0的概念与流程,这里我准备分别记一记这几种授权模式的demo,一方面为自己的最近的学习做个总结,另一方面做下知识输出, ...
- java cs系统_Java课程设计——基于CS模式的用户管理系统
Java笔记 Java项目设计思路: MVC设计模式: M:model:数据模型,类似于数据库中得一张表. V:view:视图,呈现给用户得操作界面,用户点击按钮等操作后会展示一些界面等. C:con ...
- java登录失败三次一小时后再等_Spring Security实现多次登录失败后账户锁定功能...
在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...
- java oauth2登录以及权限_Spring Cloud集成Security OAuth 2.0权限鉴权验证示例
Spring Cloud集成Security OAuth 2.0权限鉴权验证示例 一.背景说明 目前市场上微服务之间涉及到相互调用的问题,在这个过程中为了验证安全性,需要采用鉴权方式进行管理.目前主流 ...
- 登录判断_Spring Security之多次登录失败后账户锁定功能的实现
在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...
- java登录密码验证失败_java – Spring Security:如果身份验证失败,则重定向到登录页面...
我们有两种登录方式. >用户名和密码由请求标头中的其他应用程序发送.检查IT,如果用户名和密码正确,则进入.[为此编写自定义过滤器] >如果请求标头中不存在用户名和密码,则会显示登录屏幕. ...
- mysql 用户 多次登录失败_Spring Security之多次登录失败后账户锁定功能的实现
在上一次写的文章中,为大家说到了如何动态的从数据库加载用户.角色.权限信息,从而实现登录验证及授权.在实际的开发过程中,我们通常会有这样的一个需求:当用户多次登录失败的时候,我们应该将账户锁定,等待一 ...
- springsecurity 不允许session并行登录_Spring Security 实战干货:实现自定义退出登录...
我是 码农小胖哥.天天有编程干货分享.觉得写的不错.点个赞,转发一下,关注一下.本文为个人原创文章,转载请注明出处,非法转载抄袭将追究其责任. 1. 前言 上一篇对 Spring Security 所 ...
最新文章
- 使用Netty,我们到底在开发些什么?
- Microsoft Visual Studio International Pack
- boost::log::to_log_manip用法的测试程序
- 在linux系统中安装matplotlib
- Linux crontab命令
- 微信账号公开买卖;华为:5G 火车站启动;小米 9 高通骁龙 855 全球首发 | 极客头条...
- warning C4995: strcat name was marked as #pragma deprecated
- ThreeJS 跨域
- [技术脑洞] 如果把14亿中国人拉到一个微信群里技术上能实现吗?
- LED显示屏安装方法
- 宏和js实现word内容替换
- 西瓜视频需要社区文化吗?
- 可以进行论文降重吗?
- C#控制键盘按键的常用方法
- 联筑赚:我国盘扣式脚手架行业发展概况与展
- 多目标优化详解【转载】
- 程序员必备技能之英语学习(一)
- css3立方体实现方式(position+transform)
- 一个小巧的富文本编辑器(simditor)
- 七牛云直播推流php,七牛云直播Android推流端之开速开发