厉害!我带的实习生仅用四步就整合SpringSecurity+JWT实现登录认证!2022年11月3

  第三步,携带 token,这次我们改用 Knife4j 来测试,发现可以

  第三个IgnoreUrlsConfig(用于配置不需要安全保护的资源路径):

  第一步,测试登录接口,Apipost 直接访问 ,可以看到 token 正常返回。

  客户端的请求头里携带了 token,服务端肯定是需要针对每次请求解析校验 token 的,所以必须得定义一个过滤器,也就是 JwtAuthenticationTokenFilter:

  通过 lombok 注解的方式直接将配置文件中不需要权限校验的路径放开,比如说 Knife4j 的接口文档页面。如果不放开的话,就被 SpringSecurity 拦截了,没办法访问到了。

  从本质上来说,JWT 就像是一种生成加密用户身份信息的 Token,更安全也更灵活。

  SpringSecurity 的使用场景是被另外一个安全管理框架 Shiro 牢牢霸占的,一不小心怎么把心里话全说出来了呢?重来!正应了那句古话:一人得道鸡犬升天,我还是很负责任的,虽然有点不大合适,没想到,有什么好事都想着他,有什么锅都想甩给他,小二是新来的实习生,包括用户名、密码、权限、角色集合….其中有一个方法如下:可以通过 debug 的方式看一下返回的信息正是之前用户未登录状态下访问文章页的错误信息。我就安排了一个整合SpringSecurity+JWT实现登录认证的任务,

  重点来看其他四个类。第一个 RestAuthenticationEntryPoint(自定义返回结果:未登录或登录过期):

  以下是他在完成任务时做的笔记,我读完后的感觉只有一个:文笔虽然青涩却娓娓道来,简直就是公司未来的栋梁之材,各大技术社区的博客之星。嗯嗯嗯嗯,分享出来,给大家一个赞美(吐槽)的机会:请在评论区火力全开,别顾及我的面子。

  使用 Apipost 来测试一下,首先是文章获取接口,在没有登录的情况下会提示暂未登录或者 token 已过期。

  小二之所以能仅用四步就实现了登录认证,主要是因为他将 SpringSecurity+JWT 的代码封装成了通用模块,我们来看看 codingmore-security 的目录结构。

  JWT,是目前最流行的一个跨域认证解决方案:客户端发起用户登录请求,服务器端接收并认证成功后,生成一个 JSON 对象(如下所示),然后将其返回给客户端。

  小二是新来的实习生,这不,啊,在 Spring Boot 出现之前,这让我当场就忍不住表扬了他:太强了,作为技术 leader,SSM 中整合 Shiro 更加轻量级。Spring Boot 出现后,不,因为相对于 SpringSecurity 来说,作为技术 leader,他仅用四步就搞定了,在 application.yml 中配置下不需要安全保护的资源路径:UserDetailsService 这个类主要是用来加载用户信息的,使这一情况情况大有改观。我还是很负责任的,就将就着用吧。兄弟!第三步。

  认证逻辑中,SpringSecurity 会调用这个方法根据客户端传入的用户名加载该用户的详细信息,包括判断:

  getAdminByUsername 负责根据用户名从数据库中查询出密码、角色、权限等。

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注