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

Spring Security和自定義filter的沖突導致多執(zhí)行的解決方案

 更新時間:2021年06月22日 16:41:47   作者:程序員救不了第四宇宙  
這篇文章主要介紹了Spring Security和自定義filter的沖突導致多執(zhí)行的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

問題描述:

使用Spring Security時,在WebSecurityConfig中需要通過@bean注解注入Security的filter對象,但是不知是不是因為spring boot框架的原因還是什么未知原因,導致在這里注入,就會多注入一次這個對象,導致filter鏈走完之后,又會回到這個filter中再執(zhí)行一次。

@Bean
    public JwtAuthenticationTokenFilter authenticationTokenFilterBean() throws Exception {
        return new JwtAuthenticationTokenFilter();
    }

這是WebSecurityConfig.java中原本需要注入的對象。

httpSecurity
.addFilterBefore(authenticationTokenFilterBean(), UsernamePasswordAuthenticationFilter.class);

添加到Security中,這時,可能就會因為這一次的注入,導致filter鏈在本應該執(zhí)行完之后,再一次執(zhí)行添加到Security的filter……

解決辦法:

將這兩個代碼段注釋掉即可解決,當然,只是解決filter鏈執(zhí)行完后再執(zhí)行Security的filter的問題,本質(zhì)上來說并不能真正的解決問題。如果有更好的理解或者更好的解決方法,歡迎討論。

2019-5-9 16:49:00:之前這么做發(fā)現(xiàn),這樣Spring Security就相當于沒有作用了,但是filter還是會起作用,而如果啟用Spring Security,還是會進入filter……如果授權自定義的話Spring Security感覺沒有用處了,當然這是我碰到的問題,框架也是別人搭起來的,但是用法是不對的,導致寫的filter變成了自定義的,感覺跟Spring Security框架格格不入,如果有大佬知道的話歡迎指導!謝謝。

如果要使用Spring Security,那么就需要將JwtAuthenticationTokenFilter上的@Component注解刪除或者注釋掉,因為二次注入的類都是這個,但是產(chǎn)生的類對象應該是不一樣的,所以會導致二次進入filter。

所以搞得我現(xiàn)在很懷疑Spring Security是不是有必要……

Spring Security3自定義安全過濾器位置及注意事項

當auto-config="true"時,springSecurity自動創(chuàng)建過濾器鏈

1.自定義過濾器位置需要在已有過濾器之前或之后,否則會報錯;

2.由于FilterSecurityInterceptor安全observeOncePerRequest(每個請求一次)默認為true.

默認情況下FilterSecurityInterceptor只會執(zhí)行一個,所以如果既要執(zhí)行默認安全過濾器又要執(zhí)行自定義過濾器,自定義過濾器放到默認安全過濾器之前,同時observeOncePerRequest設置為false.

如:

(1)

<custom-filter after="FILTER_SECURITY_INTERCEPTOR" ref="menuFilter" />

(2)

<beans:property name="observeOncePerRequest" value="false" />

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

相關文章

  • SpringBoot項目中JDK動態(tài)代理和CGLIB動態(tài)代理的使用詳解

    SpringBoot項目中JDK動態(tài)代理和CGLIB動態(tài)代理的使用詳解

    JDK動態(tài)代理和CGLIB動態(tài)代理都是SpringBoot中實現(xiàn)AOP的重要技術,JDK動態(tài)代理通過反射生成代理類,適用于目標類實現(xiàn)了接口的場景,性能較好,易用性高,但必須實現(xiàn)接口且不能代理final方法,CGLIB動態(tài)代理通過生成子類實現(xiàn)代理
    2025-03-03
  • JAVA中的for循環(huán)幾種使用方法講解

    JAVA中的for循環(huán)幾種使用方法講解

    這篇文章主要介紹了JAVA中的for循環(huán)幾種使用方法講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解MyBatis Plus中分頁插件的使用

    詳解MyBatis Plus中分頁插件的使用

    這篇文章主要為大家詳細介紹了MyBatis Plus中分頁插件使用的相關知識,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-02-02
  • springboot 錯誤處理小結

    springboot 錯誤處理小結

    在 java web開發(fā)過程中,難免會有一些系統(tǒng)異?;蛉藶楫a(chǎn)生一些異常。在 RESTful springboot 項目中如何優(yōu)雅的處理?下面腳本之家小編給大家?guī)砹藄pringboot 錯誤處理小結,感興趣的朋友一起看看吧
    2018-03-03
  • 解決spring boot 1.5.4 配置多數(shù)據(jù)源的問題

    解決spring boot 1.5.4 配置多數(shù)據(jù)源的問題

    下面小編就為大家?guī)硪黄鉀Qspring boot 1.5.4 配置多數(shù)據(jù)源的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Mybatis中注解@MapKey的使用詳解

    Mybatis中注解@MapKey的使用詳解

    mybatis的原身是ibatis,現(xiàn)在已經(jīng)脫離了apache基金會。這篇文章主要介紹了Mybatis中注解@MapKey的使用的相關資料,需要的朋友可以參考下
    2016-10-10
  • Java實現(xiàn)雙鏈表的示例代碼

    Java實現(xiàn)雙鏈表的示例代碼

    雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結點中都有兩個指針,分別指向直接后繼和直接前驅(qū)。本文將用Java語言實現(xiàn)雙鏈表,需要的可以參考一下
    2022-09-09
  • Java Spring boot 2.0 跨域問題的解決

    Java Spring boot 2.0 跨域問題的解決

    本篇文章主要介紹了Java Spring boot 2.0 跨域問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Mybatis延遲加載的實現(xiàn)方式

    Mybatis延遲加載的實現(xiàn)方式

    這篇文章主要介紹了Mybatis延遲加載的實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java生成格式化的Word統(tǒng)計報告

    Java生成格式化的Word統(tǒng)計報告

    這篇文章主要為大家詳細介紹了如何使用Java從數(shù)據(jù)庫查詢圖書數(shù)據(jù),并生成格式化的Word統(tǒng)計報告,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2025-04-04

最新評論

淮滨县| 海伦市| 溆浦县| 阿尔山市| 齐河县| 岳阳县| 保康县| 团风县| 桃源县| 民权县| 公主岭市| 政和县| 宜黄县| 双峰县| 岳西县| 高陵县| 内江市| 东台市| 达日县| 石棉县| 延津县| 高尔夫| 巴南区| 湖口县| 陇川县| 通河县| 定结县| 荥阳市| 白水县| 衢州市| 东城区| 金寨县| 兴义市| 邯郸市| 凤山县| 呼伦贝尔市| 云梦县| 南投市| 长春市| 耒阳市| 丹棱县|