Idea中如何查看SpringSecurity各Filter信息

 更新时间:2023年01月01日 13:00:27   作者:穿条秋裤到处跑  
这篇文章主要介绍了Idea中如何查看SpringSecurity各Filter信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Filter和Filter Chain

SpringSecurity的认证逻辑是通过Filter Chain实现的,一个项目中Filter是链式执行,其中一环校验不通过,则可终止后续Filter以及Api的调用。

    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException;

在Filter的实现类中,doFilter方法里调用chain的doFilter方法,表示当前过滤器通过,继续FilterChain的下一个Filter

chain.doFilter(request, response);

Idea Evalute Expression

下面通过一个简单的项目,来查看一下Spring Security中的Filter

创建工程

通过向导创建一个springBoot工程,引入web和security依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

启动类 

@SpringBootApplication
public class SpringSecurityLearningApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(SpringSecurityLearningApplication.class, args);
        System.out.println();
    }

}

SpringApplication.run()的返回值就是Spring容器,ConfigurableApplicationContext是ApplicationContext的子类。

System.out.println();是为了便于打断点,查看applicationContext的信息。

debug启动服务

evaluate expression

通过邮件选Evaluate Expression或点击debugger栏位上是图标

点击输入框右侧的双向箭头,切换为Code fragment模式,个人觉得这个更好用

输入以下内容,获取容器中的FilterChainProxy对象,再点击窗口下侧的Evaluate

result中的filterChains中的filters就是Filter链信息,其中,UsernamePasswordAuthenticationFilter、ExceptionTranslationFilter

以及FilterSecurityInterceptor为springSecurity认证相关的Filter。

在平时debug时,如果list中的数据很多,凭肉眼去找肯定很难找,通过右键对象出来的filter很难用,可以通过Evaluate进行代码过滤,方便又快捷。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Java getParameter方法案例详解

    Java getParameter方法案例详解

    这篇文章主要介绍了Java getParameter方法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • java采用中文方式显示时间的方法

    java采用中文方式显示时间的方法

    这篇文章主要介绍了java采用中文方式显示时间的方法,实例分析了java时间操作及字符串转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题

    解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题

    这篇文章主要介绍了解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 利用Java编写一个出敬业福的小程序

    利用Java编写一个出敬业福的小程序

    新年将至,又开始扫福活动,每年的敬业福成了大家难过的坎。所以本文将介绍一个通过Java编写的一款福字生成器,感兴趣的小伙伴可以试一试
    2022-01-01
  • java以json格式向后台服务器接口发送请求的实例

    java以json格式向后台服务器接口发送请求的实例

    下面小编就为大家分享一篇java以json格式向后台服务器接口发送请求的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • java高并发的用户线程和守护线程详解

    java高并发的用户线程和守护线程详解

    本篇文章主要介绍了浅谈java中守护线程与用户线程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-10-10
  • Java判断101-200之间有多少个素数并输出

    Java判断101-200之间有多少个素数并输出

    这篇文章主要介绍了Java判断101-200之间有多少个素数并输出,需要的朋友可以参考下
    2017-02-02
  • java实现抽奖功能解析

    java实现抽奖功能解析

    这篇文章主要为大家详细介绍了java实现抽奖功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • SpringBoot + Spring Cloud Consul 服务注册和发现详细解析

    SpringBoot + Spring Cloud Consul 服务注册和发现详细解析

    这篇文章主要介绍了SpringBoot + Spring Cloud Consul 服务注册和发现,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • java实现发牌小程序

    java实现发牌小程序

    这篇文章主要为大家详细介绍了java实现发牌小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11

最新评论