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

解決使用security和靜態(tài)資源被攔截的問題

 更新時(shí)間:2021年08月26日 11:49:01   作者:malachi95  
這篇文章主要介紹了解決使用security和靜態(tài)資源被攔截的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用security和靜態(tài)資源被攔截

之前的博客中我給過如何在springboot中整合security,當(dāng)時(shí)寫的界面很簡(jiǎn)單,沒有CSS樣式,更談不上靜態(tài)資源,而現(xiàn)在在實(shí)際開發(fā)過程中經(jīng)理讓我們用security來開發(fā),界面肯定不可能就是兩個(gè)輸入框,一個(gè)按鈕就完事啊,當(dāng)加上CSS樣式的時(shí)候問題就來了。

首先是CSS樣式?jīng)]辦法被加載,其次登錄之后跳轉(zhuǎn)的路徑出錯(cuò),隨機(jī)跳轉(zhuǎn)到一個(gè)CSS文件中,這讓我很煩惱,查了很多資料,也問了很多前輩之后終于解決了這個(gè)問題。

解決方法

下面我給出具體的代碼

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Autowired
private UserDetailsServiceImpl uds;
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
    .antMatchers("/login","/css/**","/image/*").permitAll()
    .anyRequest().authenticated().and().formLogin()
            .loginPage("/login").defaultSuccessUrl("/index").permitAll().and().logout().permitAll();
}
public void configure(AuthenticationManagerBuilder auth) throws Exception {     
    auth.userDetailsService(uds);
}
}

上面給出了不被攔截的一些靜態(tài)資源的路徑 **表示可以跨文件夾

這是頁面靜態(tài)資源路徑

這是我的目錄結(jié)構(gòu)

Spring Security踩坑記錄(靜態(tài)資源放行異常)

問題描述

今天使用springboot整合springsecurity,出現(xiàn)靜態(tài)資源404的狀態(tài)

解決

1.首先嘗試使用網(wǎng)上的方法繼承 WebSecurityConfigurerAdapter

然后重寫public void configure(WebSecurity web)

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers(loadExcludePath());
    } 
    private String[] loadExcludePath() {
        return new String[]{
                "/",
                "/static/**",
                "/templates/**",
                "/img/**",
                "/js/**",
                "/css/**",
                "/lib/**"
        };
    }

照道理說。這應(yīng)該就可以了,然而我這里就是不能成功放行

2.于是我又重寫了方法 protected void configure(HttpSecurity http)

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                //關(guān)閉跨域限制
                .csrf().disable()
                .authorizeRequests()
                 //在此處放行
                .antMatchers(loadExcludePath()).permitAll()
                .anyRequest().authenticated()//其他的路徑都是登錄后即可訪問
                .and()
                .formLogin()
//                .loginPage("/login")
//                .loginProcessingUrl("/doLogin")
                .successHandler(getAuthenticationSuccessHandler())
                .failureHandler(getAuthenticationFailureHandler())
//                .permitAll()
 
                .and()
                .logout()
                .permitAll()
 
                .and()
                .exceptionHandling().accessDeniedHandler(getAccessDeniedHandler());
    }

這里的重點(diǎn)是下面幾句(其他的配置可以忽略)

http
//關(guān)閉跨域限制
.csrf().disable()
.authorizeRequests()
//在此處放行
.antMatchers(loadExcludePath()).permitAll()
.anyRequest().authenticated()//其他的路徑都是登錄后即可訪問

然而盡管標(biāo)紅的地方也進(jìn)行了放行,可是依然失敗。

到目前為止,應(yīng)該是已經(jīng)沒問題了,畢竟兩個(gè)方法中都進(jìn)行了放行,可是靜態(tài)資源依舊404

3.最終發(fā)現(xiàn)是跨域配置和springsecurity產(chǎn)生了沖突

也就是我項(xiàng)目中在其他位置配置了跨域的內(nèi)容,如下

@Configuration
public class CORSConfiguration extends WebMvcConfigurationSupport { 
    @Override
    protected void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "HEAD", "POST","PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .exposedHeaders(
                        "access-control-allow-headers",
                        "access-control-allow-methods",
                        "access-control-allow-origin",
                        "access-control-max-age",
                        "X-Frame-Options")
                .allowCredentials(true)
                .maxAge(3600);
        super.addCorsMappings(registry);
    }
}

把 CORSConfiguration 注釋掉,最終問題解決~

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

相關(guān)文章

  • Spring IOC與DI核心深入理解

    Spring IOC與DI核心深入理解

    IOC也是Spring的核心之一了,之前學(xué)的時(shí)候是采用xml配置文件的方式去實(shí)現(xiàn)的,后來其中也多少穿插了幾個(gè)注解,但是沒有說完全采用注解實(shí)現(xiàn)。那么這篇文章就和大家分享一下,全部采用注解來實(shí)現(xiàn)IOC+DI
    2023-02-02
  • JAVA初探設(shè)計(jì)模式的六大原則

    JAVA初探設(shè)計(jì)模式的六大原則

    這篇文章主要介紹了JAVA初探設(shè)計(jì)模式的六大原則,對(duì)設(shè)計(jì)模式感興趣的同學(xué),可以參考下
    2021-05-05
  • 配置Servlet兩種方法以及特點(diǎn)詳解

    配置Servlet兩種方法以及特點(diǎn)詳解

    這篇文章主要介紹了配置Servlet兩種方法以及特點(diǎn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • mybatis如何設(shè)置useGeneratedKeys=true

    mybatis如何設(shè)置useGeneratedKeys=true

    這篇文章主要介紹了mybatis如何設(shè)置useGeneratedKeys=true,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-01-01
  • springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式

    springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式

    這篇文章主要介紹了springboot 返回json格式數(shù)據(jù)時(shí)間格式配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • IDEA如何將右下角提示框禁止彈出問題

    IDEA如何將右下角提示框禁止彈出問題

    這篇文章主要介紹了IDEA如何將右下角提示框禁止彈出問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java 是如何利用接口避免函數(shù)回調(diào)的方法

    Java 是如何利用接口避免函數(shù)回調(diào)的方法

    本篇文章主要介紹了Java 是如何利用接口避免函數(shù)回調(diào)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • 微服務(wù)中使用Maven BOM來管理你的版本依賴詳解

    微服務(wù)中使用Maven BOM來管理你的版本依賴詳解

    這篇文章主要介紹了微服務(wù)中使用Maven BOM來管理你的版本依賴,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Spring AOP結(jié)合注解實(shí)現(xiàn)接口層操作日志記錄

    Spring AOP結(jié)合注解實(shí)現(xiàn)接口層操作日志記錄

    在項(xiàng)目開發(fā)中我們需要記錄接口的操作日志:包含請(qǐng)求參數(shù)、響應(yīng)參數(shù)、接口所屬模塊、接口功能描述、請(qǐng)求地址、ip地址等信息;實(shí)現(xiàn)思路很簡(jiǎn)單就是基于注解和aop的方式去記錄日志,主要的難點(diǎn)在于日志表結(jié)構(gòu)、注解的設(shè)計(jì)已經(jīng)aop實(shí)現(xiàn)的一些比較好的實(shí)現(xiàn)方式的借鑒
    2022-08-08
  • Java Socket編程實(shí)現(xiàn)簡(jiǎn)單的問候服務(wù)

    Java Socket編程實(shí)現(xiàn)簡(jiǎn)單的問候服務(wù)

    這篇文章主要為大家介紹了Java Socket編程實(shí)現(xiàn)簡(jiǎn)單的問候服務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-01-01

最新評(píng)論

富宁县| 奈曼旗| 湟源县| 尤溪县| 高州市| 江油市| 古丈县| 罗定市| 鄱阳县| 衢州市| 九台市| 河西区| 莎车县| 正宁县| 门头沟区| 门源| 太保市| 松桃| 长白| 新乡市| 宁津县| 顺昌县| 囊谦县| 横山县| 奉化市| 梅河口市| 玉门市| 华蓥市| 虎林市| 宁明县| 霸州市| 文登市| 隆化县| 上高县| 南岸区| 青龙| 洪泽县| 惠来县| 曲松县| 乌鲁木齐市| 丹凤县|