SpringBoot+SpringSecurity 不拦截静态资源的实现

一、问题描述

在 SpringBoot 中加入 SpringSecurity 中之后,静态资源总是被过滤,导致界面很难看:

目录结构:

二、问题解决

正常不拦截资源,我查阅资料,基本都是重新 config 方法即可:

package org.yolo.securitylogin.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @Auther: Yolo
 * @Date: 2020/9/12 13:05
 * @Description:
 */
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
  @Bean
  PasswordEncoder passwordEncoder() {
    return NoOpPasswordEncoder.getInstance();
  }

  @Override
  protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    //在内存中进行配置
    auth.inMemoryAuthentication()
        .withUser("yolo")
        .password("123").roles("admin");
  }

  @Override
  public void configure(WebSecurity web) throws Exception {
    //web.ignoring().antMatchers("/static/js/**", "/static/css/**", "/static/images/**");
    web.ignoring().antMatchers("/js/**", "/css/**","/images/**");
  }

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
        .anyRequest().authenticated()
        .and()
        .formLogin()
        .loginPage("/login.html")
        .permitAll()//跟登录相关的页面统统放行
        .and()
        .csrf().disable()
    ;
  }
}

常规方法是:

@Override
  public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/js/**", "/css/**","/images/**");
  }

这里一定要谨记,这样配置了 configure,之后,一定要清除 target,不然是不会生效的

到此这篇关于SpringBoot+SpringSecurity 不拦截静态资源的实现的文章就介绍到这了,更多相关SpringBoot+SpringSecurity 不拦截静态资源内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决Spring boot2.0+配置拦截器拦截静态资源的问题

    第一次遇到这个问题的时候,简直是一脸蒙逼,写了一个拦截器以后,静态资源就不能访问了,到处查找才知道是版本问题 解决办法: 第一步:定义一个类实现 实现WebMvcConfigurer的类中拦截器中添加放行资源处添加静态资源文件路径: @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(sessionInterceptor).addPathPatterns("/&

  • SpringBoot+SpringSecurity 不拦截静态资源的实现

    一.问题描述 在 SpringBoot 中加入 SpringSecurity 中之后,静态资源总是被过滤,导致界面很难看: 目录结构: 二.问题解决 正常不拦截资源,我查阅资料,基本都是重新 config 方法即可: package org.yolo.securitylogin.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Conf

  • 详解springmvc拦截器拦截静态资源

    springmvc拦截器interceptors springmvc拦截器能够对请求的资源路径进行拦截,极大的简化了拦截器的书写.但是,千万千万要注意一点:静态资源的放行. 上代码: <mvc:resources mapping="/resources/**" location="/static/resources" /> <mvc:resources mapping="/static/css/**" location=&quo

  • SpringBoot中配置Web静态资源路径的方法

    介绍: 本文章主要针对web项目中的两个问题进行详细解析介绍:1- 页面跳转404,即controller转发无法跳转页面问题:2- 静态资源文件路径问题. 项目工具: Intelij Idea, JDK1.8, SpringBoot 2.1.3 正文: 准备工作:通过Idea创建一个SpringBoot-web项目,此过程不做赘述,创建完成后项目结构如下图: 1- 创建一个controller代码如下: package com.example.webpractice.controller; i

  • SpringBoot Web详解静态资源规则与定制化处理

    目录 1.相关概念 2.静态资源目录 3.静态资源访问前缀 4.欢迎页支持 5.自定义favicon 6.源码分析 1.相关概念 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议使用Spring Boot的默认配置方式,如果需要特殊处理的再通过配置文件进行修改. 如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc, 增加该注解以后WebMvcAuto

  • Spring Boot security 默认拦截静态资源的解决方法

    Spring Boot security 会默认登陆之前拦截全部css, js,img等动态资源,导致我们的公开主页在登陆之前很丑陋 像这样: 网上很多解决办法都过时了比如还在使用WebSecurityConfigurerAdapte,antMatchers public class SecurityConfigurer extends WebSecurityConfigurerAdapter { @Override public void configure(WebSecurity web)

  • 解决Springboot整合shiro时静态资源被拦截的问题

    目录结构如下 在自己配置的ShiroConfig中已经放行了 filterChainDefinitionMap.put("/static/**", "anon"); login.ftl也引用了静态资源 <link rel="stylesheet" type="text/css" href="/logins/css/normalize.css" rel="external nofollow&q

  • SpringMVC 拦截器不拦截静态资源的三种处理方式方法

    SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静态资源不进行过滤(涉及spring-mvc.xml) <mvc:resources location="/" mapping="/**/*.js"/> <mvc:resources location="/" mapping=&quo

  • 解决使用security和静态资源被拦截的问题

    目录 使用security和静态资源被拦截 解决方法 Spring Security踩坑记录(静态资源放行异常) 问题描述 解决 1.首先尝试使用网上的方法继承 WebSecurityConfigurerAdapter 2.于是我又重写了方法 protected void configure(HttpSecurity http) 3.最终发现是跨域配置和springsecurity产生了冲突 使用security和静态资源被拦截 之前的博客中我给过如何在springboot中整合security

  • springboot操作静态资源文件的方法

    默认静态资源供 SpringBoot有几个默认的静态资源目录,当然也可配置,默认配置的/**映射到/static(或/public ,/resources,/META-INF/resources),自定义配置方式如下: spring.mvc.static-path-pattern=/** # Path pattern used for static resources. 前端如果需要访问默认的静态资源,下面有点要注意,考虑下面的目录结构: └─resources │ application.ym

随机推荐