最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringSecurity實現(xiàn)踢出指定用戶

 更新時間:2025年12月25日 16:30:38   作者:百***5588  
文章介紹了如何在SpringSecurity中使用SessionRegistryImpl來獲取會話信息并踢出指定用戶,同時也分享了SpringSecurity配置控制器的個人經驗

SpringSecurity踢出指定用戶

SpringSecurity中可以使用 SessionRegistry 的實現(xiàn)類 SessionRegistryImpl 來獲取session相關信息,可以通過這個實現(xiàn)類來踢出用戶。

SpringSecurity配置

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    ISysUserService userService;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/webjars/**","/asserts/**","/login").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .loginProcessingUrl("/loginPost")
                .failureUrl("/login?error=true")
                .defaultSuccessUrl("/index")
                .and()
                .logout()
                .logoutUrl("/logout")
                .addLogoutHandler(new MyLogoutHandler())
                .logoutSuccessUrl("/login")
                .and()
                .rememberMe()
                .userDetailsService(userService)
                .tokenRepository(jdbcTokenRepository())
                //保存登錄狀態(tài)時間,單位是秒
                .tokenValiditySeconds(60*60*3)
                .and()
                //關閉請求頭中的frame選項,不限制iframe
                .headers().frameOptions().disable()
                //關閉跨域
                .and().csrf().disable()
                .sessionManagement()
                //無效session跳轉
                .invalidSessionUrl("/login")
                //同時登陸多個只保留一個
                .maximumSessions(1)
                //過期session跳轉
                .expiredUrl("/login")
                .sessionRegistry(sessionRegistry());
    }

    /** 注冊SessionRegistry*/
    @Bean
    public SessionRegistry sessionRegistry(){
        return new SessionRegistryImpl();
   	}

控制器

/** 踢出用戶 */
    @PreAuthorize("hasRole('管理員')")
    @GetMapping("/logout/{id}")
    @ResponseBody
    public String logout(@PathVariable Long id) throws NoSuchFieldException {
    	//通過id查詢用戶
        SysUser sysUser = userService.selectUserByUserId(id);
        //獲取所有principal信息
        List<Object> allPrincipals = sessionRegistry.getAllPrincipals();
        for (Object allPrincipal : allPrincipals) {
            User user=(User)allPrincipal;
            //判斷是否跟傳遞的id所找到的用戶登錄名一致
            if(user.getUsername().equals(sysUser.getLoginName())){
                List<SessionInformation> allSessions = sessionRegistry.getAllSessions(allPrincipal, false);
                for (SessionInformation session : allSessions) {
                	//使當前session過期
                    session.expireNow();
                }
            }
        }
        return "ok";
    }

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MyBatis select標簽的使用示例

    MyBatis select標簽的使用示例

    MyBatis中,select 標簽是最常用也是功能最強大的 SQL 語言,用于執(zhí)行查詢操作,本文就來介紹了MyBatis select標簽的使用示例,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • 淺談javaSE GUI (Action事件)

    淺談javaSE GUI (Action事件)

    下面小編就為大家?guī)硪黄獪\談javaSE GUI (Action事件)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例

    Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例

    這篇文章主要介紹了Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • spring中Interceptor的使用小結

    spring中Interceptor的使用小結

    Spring Interceptor是Spring MVC提供的一種機制,用于在請求處理的不同階段插入自定義邏輯,通過實現(xiàn)HandlerInterceptor接口并注冊攔截器,可以控制攔截器的執(zhí)行順序和路徑匹配規(guī)則,下面就來詳細的介紹一下,感興趣的可以了解一下
    2025-12-12
  • 搭建Spring cloud 非阻塞式微服務架構的實現(xiàn)

    搭建Spring cloud 非阻塞式微服務架構的實現(xiàn)

    本文介紹搭建非阻塞式微服務架構,采用Spring Gateway、Spring Security、JWT與Redis,集成EurekaServer、Auth-service、User-service等服務,實現(xiàn)用戶認證、日志跟蹤及統(tǒng)一入口管理,感興趣的可以了解一下
    2025-08-08
  • Springboot錯誤頁面和錯誤信息定制操作

    Springboot錯誤頁面和錯誤信息定制操作

    這篇文章主要介紹了Springboot錯誤頁面和錯誤信息定制操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Netty粘包拆包問題解決方案

    Netty粘包拆包問題解決方案

    這篇文章主要介紹了Netty粘包拆包問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • icePDF去水印的方法(推薦)

    icePDF去水印的方法(推薦)

    下面小編就為大家?guī)硪黄猧cePDF去水印的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Kotlin?標準函數(shù)和靜態(tài)方法示例詳解

    Kotlin?標準函數(shù)和靜態(tài)方法示例詳解

    這篇文章主要為大家介紹了Kotlin?標準函數(shù)和靜態(tài)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • 解決mybatis一對多查詢resultMap只返回了一條記錄問題

    解決mybatis一對多查詢resultMap只返回了一條記錄問題

    小編接到領導一個任務需求,需要用到使用resultMap相關知識,在這小編記錄下這個問題的解決方法,對mybatis一對多查詢resultMap項目知識感興趣的朋友一起看看吧
    2021-11-11

最新評論

慈溪市| 台东县| 东乡县| 德化县| 调兵山市| 祁阳县| 沿河| 南川市| 肇庆市| 颍上县| 泰州市| 内丘县| 舞阳县| 凤城市| 内黄县| 隆化县| 潜山县| 中卫市| 东海县| 普宁市| 察隅县| 五原县| 介休市| 通许县| 九江市| 县级市| 江西省| 东源县| 门源| 澳门| 龙井市| 定安县| 颍上县| 满城县| 鲁甸县| 都江堰市| 永宁县| 郁南县| 晋城| 若尔盖县| 靖宇县|