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

解決SpringBoot自定義攔截器和跨域配置沖突的問題

 更新時(shí)間:2021年08月20日 14:53:12   作者:G·S  
這篇文章主要介紹了解決SpringBoot自定義攔截器和跨域配置沖突的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringBoot自定義攔截器和跨域配置沖突

技術(shù)棧

vue-cli3,springboot 2.3.2.RELEASE

問題引出

在做畢業(yè)設(shè)計(jì)過程中用到了自定義攔截器驗(yàn)證登錄。同時(shí)在springboot配置類中設(shè)置了跨域問題,出現(xiàn)跨域失敗的情況。

原代碼

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .maxAge(3600);
        super.addCorsMappings(registry);
    }
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/login/*","/register/*");
    }
}

經(jīng)過了解和排查發(fā)現(xiàn),當(dāng)有請(qǐng)求發(fā)送到后臺(tái)時(shí),先被自定義攔截器攔截,如果攔截器驗(yàn)證沒有問題,才會(huì)開始執(zhí)行跨域配置。因此解決辦法是讓跨域配置在自定義攔截器之前執(zhí)行。而Filter的執(zhí)行順序大于自定義攔截器,因此可以在Filter中實(shí)現(xiàn)跨域的配置。

新代碼

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/login/*","/register/*");
    }
}

添加Filter

@Configuration
public class MyCorsFilter{
    private CorsConfiguration corsConfig(){
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.setMaxAge(3600L);
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }
    @Bean
    public CorsFilter corsFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**",corsConfig());
        return new CorsFilter(source);
    }
}

SpringBoot 攔截器和addCorsMappings沖突

項(xiàng)目中最開始跨域問題是通過自定義過濾器CorsFilter對(duì)request處理的,可以很好的解決問題?! ?/p>

最近,新項(xiàng)目中準(zhǔn)備通過如下代碼解決跨域問題,結(jié)果發(fā)現(xiàn)登錄超時(shí)的錯(cuò)誤會(huì)出現(xiàn)跨域問題,其他問題都不會(huì)。

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**");
    }
}

因?yàn)榈卿洺瑫r(shí)的檢查是在攔截器中,所以推測(cè)是可能是攔截器的執(zhí)行在addCorsMappings生效之前。將CorsFilter代碼拿到項(xiàng)目中后,果然沒有這個(gè)問題了。所以這個(gè)bu基本上可以認(rèn)定是是攔截器和addCorsMappings生效順序的問題。

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

相關(guān)文章

  • 線程池中execute與submit的區(qū)別說明

    線程池中execute與submit的區(qū)別說明

    這篇文章主要介紹了線程池execute與submit的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java多線程中關(guān)于join方法的使用實(shí)例解析

    Java多線程中關(guān)于join方法的使用實(shí)例解析

    本文通過實(shí)例代碼給大家實(shí)例介紹了Java多線程中關(guān)于join方法的使用,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-01-01
  • Spring5使用JSR 330標(biāo)準(zhǔn)注解的方法

    Spring5使用JSR 330標(biāo)準(zhǔn)注解的方法

    從Spring3.0之后,除了Spring自帶的注解,我們也可以使用JSR330的標(biāo)準(zhǔn)注解,本文主要介紹了Spring5使用JSR 330標(biāo)準(zhǔn)注解,感興趣的可以了解一下
    2021-09-09
  • Spring中的Aware接口及應(yīng)用場(chǎng)景詳解

    Spring中的Aware接口及應(yīng)用場(chǎng)景詳解

    這篇文章主要介紹了Spring中的Aware接口及應(yīng)用場(chǎng)景,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Spring Boot實(shí)現(xiàn)簡(jiǎn)單的定時(shí)任務(wù)

    Spring Boot實(shí)現(xiàn)簡(jiǎn)單的定時(shí)任務(wù)

    這篇文章主要給大家介紹了關(guān)于利用Spring Boot實(shí)現(xiàn)簡(jiǎn)單的定時(shí)任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • JAVA中static方法的用法實(shí)例詳解

    JAVA中static方法的用法實(shí)例詳解

    這篇文章主要介紹了JAVA中static方法的用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java中static方法的功能、使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2015-12-12
  • Java中isAssignableFrom的用法詳解

    Java中isAssignableFrom的用法詳解

    下面小編就為大家?guī)硪黄狫ava中isAssignableFrom的用法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • SpringBoot中的@ApiModelProperty注解作用

    SpringBoot中的@ApiModelProperty注解作用

    這篇文章主要介紹了SpringBoot中的@ApiModelProperty注解作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • 5分鐘搞定java單例模式

    5分鐘搞定java單例模式

    單例模式(Singleton?Pattern)是?Java?中最簡(jiǎn)單的設(shè)計(jì)模式之一。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式,本文給大家介紹下java單例模式的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2022-03-03
  • SpringBoot部署到騰訊云的實(shí)現(xiàn)示例

    SpringBoot部署到騰訊云的實(shí)現(xiàn)示例

    記錄一下自己第一次部署springboot項(xiàng)目,本文主要介紹了SpringBoot部署到騰訊云的實(shí)現(xiàn)示例,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08

最新評(píng)論

甘泉县| 五常市| 太仓市| 德兴市| 土默特左旗| 科技| 礼泉县| 鄄城县| 麻江县| 海宁市| 微山县| 微山县| 永宁县| 四平市| 锡林郭勒盟| 昌图县| 文登市| 冷水江市| 青海省| 陇南市| 沅江市| 昌乐县| 浦东新区| 本溪市| 龙陵县| 阳原县| 乐业县| 闽清县| 山西省| 和平县| 辉南县| 黑山县| 巴林左旗| 罗定市| 罗江县| 临澧县| 和顺县| 华亭县| 赤城县| 东乡族自治县| 临洮县|