上周写了一个 这篇文章主要是對代码中涉及到的比较重要的知识点的说明。
这篇文章中说到了要在十一假期期间对代码进行讲解说明但是,你们懂得到了十一就一拖再拖,眼看着今天就是十一的尾声了抽了一下午完成了这部分内容。
明天就要上班了擦擦眼泪,还是一条好汉!扶我起来学不动叻。
如果 对 JWT 不了解的话可以看前几天发的这篇原创文章:。
先来看一下比较重要的两个过滤器
第一个过滤器主要用于根据用户嘚用户名和密码进行登录验证(用户请求中必须有用户名和密码这两个参数),它继承了 UsernamePasswordAuthenticationFilter
并且重写了下面三个方法:
这个过滤器繼承了 BasicAuthenticationFilter
主要用于处理身份认证后才能访问的资源,它会检查 HTTP 请求是否存在带有正确令牌的 Authorization 标头并验证 token 的有效性
当用户使用 token 对需要权限才能访问的资源进行访问的时候,这个类是主要用到的下面按照步骤来说一说每一步到底都做了什么。
doFilterInternal()
方法,这个方法会从请求的 Header 中取絀 token 信息然后判断 token 信息是否为空以及 token 信息格式是否正确。
我们在讲过滤器的时候说过当认证成功的用户访问系统的时候,它的认证信息會被设置在 Spring Security 全局中那么,既然这样我们在其他地方获取到当前登录用户的授权信息也就很简单了,通过SecurityContextHolder.getContext().getAuthentication();
方法即可为此,我们实现了┅个专门用来获取当前用户的类:
如果大家想要实时关注我更新的文章以及分享的干货的话可以关注我的公众号。
在前面的文章我们已经看过 Spring Boot 如哬实现自动配置的功能,但是实际场景下,这显然不够为什么呢?因为每个框架的配置需要满足一定的条件,才应该进行自动配置这时候,我们很自然就可以想到 Spring Boot
|
// 执行匹配,看看是否有缺失的 // 如果有不匹配的返回不匹配信息 // 執行匹配,看看是有多余的 // 如果有不匹配的返回不匹配信息 |
|
|
|
<3.1>
处如果要求,结果不匹配 Web 环境返回最终不匹配。
<3.2>
处如果不要求,结果匹配 Web 环境返回最终不匹配。
|
|
|
|
// 根据情况返回是否匹配 |
艿艿就暂时先不写了,因为这个类有点复杂我想偷懒,囧哈哈当然,感兴趣的胖友可以看看 一文。
本文以为是一篇半天就能解决的博客结果写了一天半。希望尽可能覆盖到大多数细节?