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

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

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

SpringSecurity踢出指定用戶

SpringSecurity中可以使用 SessionRegistry 的實(shí)現(xiàn)類 SessionRegistryImpl 來獲取session相關(guān)信息,可以通過這個(gè)實(shí)現(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)時(shí)間,單位是秒
                .tokenValiditySeconds(60*60*3)
                .and()
                //關(guān)閉請(qǐng)求頭中的frame選項(xiàng),不限制iframe
                .headers().frameOptions().disable()
                //關(guān)閉跨域
                .and().csrf().disable()
                .sessionManagement()
                //無效session跳轉(zhuǎn)
                .invalidSessionUrl("/login")
                //同時(shí)登陸多個(gè)只保留一個(gè)
                .maximumSessions(1)
                //過期session跳轉(zhuǎn)
                .expiredUrl("/login")
                .sessionRegistry(sessionRegistry());
    }

    /** 注冊(cè)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) {
                	//使當(dāng)前session過期
                    session.expireNow();
                }
            }
        }
        return "ok";
    }

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis select標(biāo)簽的使用示例

    MyBatis select標(biāo)簽的使用示例

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

    淺談javaSE GUI (Action事件)

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

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

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

    spring中Interceptor的使用小結(jié)

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

    搭建Spring cloud 非阻塞式微服務(wù)架構(gòu)的實(shí)現(xiàn)

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

    Springboot錯(cuò)誤頁面和錯(cuò)誤信息定制操作

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

    Netty粘包拆包問題解決方案

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

    icePDF去水印的方法(推薦)

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

    Kotlin?標(biāo)準(zhǔn)函數(shù)和靜態(tài)方法示例詳解

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

    解決mybatis一對(duì)多查詢r(jià)esultMap只返回了一條記錄問題

    小編接到領(lǐng)導(dǎo)一個(gè)任務(wù)需求,需要用到使用resultMap相關(guān)知識(shí),在這小編記錄下這個(gè)問題的解決方法,對(duì)mybatis一對(duì)多查詢r(jià)esultMap項(xiàng)目知識(shí)感興趣的朋友一起看看吧
    2021-11-11

最新評(píng)論

高淳县| 德化县| 邳州市| 明星| 绵阳市| 庆安县| 奉化市| 静海县| 朔州市| 汝南县| 黄山市| 株洲市| 远安县| 呼玛县| 新平| 石台县| 彝良县| 都匀市| 太仆寺旗| 桂东县| 北安市| 淳化县| 突泉县| 景德镇市| 瑞金市| 甘肃省| 五寨县| 德保县| 威远县| 边坝县| 东光县| 连云港市| 新建县| 二手房| 沙河市| 蚌埠市| 房山区| 德格县| 赣榆县| 景宁| 康平县|