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

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

 更新時(shí)間:2025年03月01日 09:20:40   作者:m0_74824002  
SpringSecurity中使用SessionRegistryImpl類可以獲取session信息并踢出用戶,這篇文章主要介紹了SpringSecurity實(shí)現(xiàn)踢出指定用戶的示例,需要的朋友可以參考下

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)閉請求頭中的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());
    }
    /** 注冊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";
    }

到此這篇關(guān)于SpringSecurity踢出指定用戶的文章就介紹到這了,更多相關(guān)SpringSecurity踢出指定用戶內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Security實(shí)現(xiàn)基于角色的訪問控制框架

    Spring Security實(shí)現(xiàn)基于角色的訪問控制框架

    Spring Security是一個(gè)功能強(qiáng)大的安全框架,提供了基于角色的訪問控制、身份驗(yàn)證、授權(quán)等安全功能,可輕松保護(hù)Web應(yīng)用程序的安全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-04-04
  • java 實(shí)現(xiàn)Comparable接口排序,升序、降序、倒敘

    java 實(shí)現(xiàn)Comparable接口排序,升序、降序、倒敘

    這篇文章主要介紹了java 實(shí)現(xiàn)Comparable接口排序,升序、降序、倒敘,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Spring-boot結(jié)合Shrio實(shí)現(xiàn)JWT的方法

    Spring-boot結(jié)合Shrio實(shí)現(xiàn)JWT的方法

    這篇文章主要介紹了Spring-boot結(jié)合Shrio實(shí)現(xiàn)JWT的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java File類的詳解及簡單實(shí)例

    Java File類的詳解及簡單實(shí)例

    這篇文章主要介紹了Java File類的詳解及簡單實(shí)例的相關(guān)資料,希望通過本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • JVM如何處理異常深入詳解

    JVM如何處理異常深入詳解

    異常處理的兩大元素:拋出異常、捕獲異常,非正常處理的兩個(gè)方法。下面這篇文章主要給大家介紹了關(guān)于JVM如何處理異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2019-01-01
  • Spring boot熱部署devtools過程解析

    Spring boot熱部署devtools過程解析

    這篇文章主要介紹了Spring boot熱部署devtools過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java NIO Buffer過程詳解

    Java NIO Buffer過程詳解

    這篇文章主要介紹了Java NIO Buffer過程詳解,緩沖區(qū)在java nio中負(fù)責(zé)數(shù)據(jù)的存儲。緩沖區(qū)就是數(shù)組。用于存儲不同數(shù)據(jù)類型的數(shù)據(jù)。,需要的朋友可以參考下
    2019-06-06
  • Java鏈接redis_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java鏈接redis_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java鏈接redis,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • java使用鏈表實(shí)現(xiàn)約瑟夫環(huán)

    java使用鏈表實(shí)現(xiàn)約瑟夫環(huán)

    這篇文章主要為大家詳細(xì)介紹了java使用鏈表實(shí)現(xiàn)約瑟夫環(huán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 實(shí)例分析Java泛型

    實(shí)例分析Java泛型

    本篇文章通過代碼實(shí)例給大家講述了Java泛型的相關(guān)知識點(diǎn)以及相關(guān)的代碼分析,對此有興趣的朋友學(xué)習(xí)下。
    2018-02-02

最新評論

峨眉山市| 余干县| 西城区| 囊谦县| 扶风县| 牟定县| 米泉市| 简阳市| 启东市| 瑞昌市| 彭阳县| 嘉峪关市| 易门县| 泾川县| 淮安市| 绥滨县| 平凉市| 卫辉市| 葵青区| 佛冈县| 东平县| 精河县| 辽中县| 潜山县| 平凉市| 昌宁县| 澳门| 化州市| 洱源县| 十堰市| 双鸭山市| 宁国市| 化州市| 海门市| 霸州市| 府谷县| 罗山县| 泗洪县| 中方县| 东港市| 普洱|