当前位置: 首页 > 网络应用技术

Springboot Integrated Shiro

时间:2023-03-06 01:27:51 网络应用技术

  Apache Shiro是一种功能强大且容易 - 使用Java安全框架。我们可以通过Shiro:认证,授权,加密,会话管理,与Web,Cache等集成等。不要太嗨,一个人可以与Liver King一起生活很多,而Shiro是一个项目在Apache下,给人们一个非常可靠的匆忙,并且不会绑定任何框架或容器。

  让我们看一下如何整合Shiro。

  在这里,您需要提醒小司机,没有工作经验。当您遇到不了解的技术时,请不要掌握头皮阅读的概念。有时您可以自己实现代码。代码运行后,在阅读结果后,您可以返回并重新 - re -re -turn。在看概念时,代码代码的实现将具有不同的感觉。如果您在学习中仍然很难学习,则可以将其发送到评论区域。社区中有许多伟大的神可以回答。不要在闭门后面建造封闭的汽车。

  让我们看一下[第一步],我们引入了两个身份验证(,),这是很大的。这是什么?请参阅Hua Gie谈论人。

  简而言之,背景将从各种场景中接收请求,例如登录,注册,新用户等。我们不能使用一种策略杀死它们。数据库查询登录信息是正确的,一旦登录成功,请求再次发送,并且每次连接数据库以检查用户登录信息是否正确时,显然是不合适的,因此需要其他策略。

  因此,使用两种用于处理登录验证的领域,该领域仅处理评估登录请求,并且验证登录正确;对于所有其他接口请求,它将被拦截。

  接下来,让我们看一下[步骤2],方法是设置认证策略。什么是认证策略?这听起来不像人类,但实际上最好理解。让我们看一下以下代码:

  不是侵略性吗?不用担心,这是一个特定的场景:我们两个人用来证明领域。默认情况下,我们的每个接口将分别由这两个领域验证。如果有验证,则有一个验证访问,另一个验证失败,那么此请求成功或失败。目前,需要一种策略来调节它。官员提供了三种策略:

  最后,看看[步骤3]。在这里,我们禁用会话,不要保存用户登录状态,以确保重新确定每个请求。

  仅负责处理登录请求,其实现逻辑就是在请求接口中获取帐户密码,通过数据库查询,并将查询结果保存到REDIS中以进行验证,以验证。

  上面的loginreaml将缓存成功的登录用户信息。每次接口调用背景之后,标记字段都会在标题请求标题上携带以验证权限。

  一些请求不需要拦截,例如注册此类接口和一些静态资源(CSS,图片,JS等)。目前,我们需要提前设置它。示例代码如下:

  在这里,我们在前端获得了用户名和密码,并将呼叫方法封装在logintoken中。目前,将触发登录以验证权威。为什么它触发loginrealm而不是customRealm?我们已经在上面详细介绍了它。

  如果测试结果,您可以获得JWT生成的令牌值。当您将来再次询问时,您需要带上令牌进行验证:

  推荐阅读:

  实际战斗!Shiro安全框架(详细代码)