<返回更多

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

2020-08-06    
加入收藏

在开发过程中,遇到问题,我们经常会使用搜索引擎来查找问题的解决方案,然后予以解决。但是有些问题一时半会搜索不到解决方案,需要自己去解决。这里分享下我解决这些问题使用的调试技巧,给大家一个解决问题的新思路!

问题描述

《我扒了半天源码,终于找到了Oauth2自定义处理结果的最佳方案!》一文中,当JWT令牌过期或者签名不正确时,我们想要自定义网关认证失败的返回结果。这个问题解决起来很简单,只需修改一行代码即可。但是当时查找解决方案确实花费了一番功夫,通过DEBUG源码才找到了Spring Security中提供的自定义配置,解决了该问题。下面讲讲我是如何通过DEBUG源码找到这个解决方案的!

解决过程

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

/**
 * A {@link ServerHttpSecurity} is similar to Spring Security's {@code HttpSecurity} but for WebFlux.
 * It allows configuring web based security for specific http requests. By default it will be Applied
 * to all requests, but can be restricted using {@link #securityMatcher(ServerWebExchangeMatcher)} or
 * other similar methods.
 **/
被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

被我用烂的DEBUG调试技巧,专治各种搜索不到的问题

 

/**
 * 资源服务器配置
 * Created by macro on 2020/6/19.
 */
@AllArgsConstructor
@Configuration
@EnableWebFluxSecurity
public class ResourceServerConfig {
    private final RestAuthenticationEntryPoint restAuthenticationEntryPoint;

    @Bean
    public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
       //省略若干代码...
       //自定义处理JWT请求头过期或签名错误的结果
       http.oauth2ResourceServer().authenticationEntryPoint(restAuthenticationEntryPoint);
       //省略若干代码...
       return http.build();
    }
}

总结

对于一时找不到解决方法的问题,我推荐使用DEBUG源码的方式来解决。首先寻找一个突破口,可以从你熟悉的一些类中去寻找一个必定会执行的方法,然后打断点,进行DEBUG,从调用的栈信息中查找出关键的类,之后通过这些关键类顺藤摸瓜就能找解决方法了!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>