当前位置: 首页 > news >正文

蛋糕网站内容规划网站后台公告id修改

蛋糕网站内容规划,网站后台公告id修改,安装网站模板,贵港建设局网站查询Shiro登录校验流程实现与分析 什么是Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 三个核心组件 Subject, Se…Shiro登录校验流程实现与分析 什么是Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 三个核心组件 Subject, SecurityManager 和 Realms. ①Subject即“当前操作用户”。但是在Shiro中Subject这一概念并不仅仅指人也可以是第三方进程、后台帐户Daemon Account或其他类似事物。它仅仅意味着“当前跟软件交互的东西”。但考虑到大多数目的和用途你可以把它认为是Shiro的“用户”概念。Subject代表了当前用户的安全操作SecurityManager则管理所有用户的安全操作。 ②SecurityManager它是Shiro框架的核心典型的Facade模式Shiro通过SecurityManager来管理内部组件实例并通过它来提供安全管理的各种服务。 ③Realm Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说当对用户执行认证登录和授权访问控制验证时Shiro会从应用配置的Realm中查找用户及其权限信息。 登录认证过程简述 ①调用subject.login方法进行登录其会自动委托给securityManager,login方法进行登录; ②securityManager通过 Authenticator(认证器)进行认证 ③Authenticator的实现ModularRealmAuthenticaton调用realm从ini配置文件取用户真实的账号和密码这里使用的是IniRealm ( shiro自带相当于数据源) ; ④IniRealm先根据token中的账号去ini中找该账号,如果找不到则给ModularRealmAuthenticator返回null ,如果找到则匹配密码匹配密码成功则认证通过。 image.png 具体实现 dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.11/versionscopetest/scope/dependency!-- https://mvnrepository.com/artifact/commons-logging/commons-logging --dependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.1.3/version/dependency!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core --dependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-core/artifactIdversion1.4.0/version/dependencyimage.png package com.swl;import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.mgt.SecurityManager; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; import org.junit.Test;/*** DescriptionShiroTestbr** author DaShibr* CreateDate 2019-02-15 09:43 br*/ public class ShiroTest {Testpublic void loginTest() throws Exception{//创建IniSecurityManager工程对象:加载配置文件FactorySecurityManager factory new IniSecurityManagerFactory(classpath:shiro.ini);//通过工厂对象创建SecurityManager对象SecurityManager securityManager factory.getInstance();// 将SecurityManager绑定到当前运行环境中让系统随时可以访问SecurityManager对象SecurityUtils.setSecurityManager(securityManager);//创建登录主体 注意此时主体没有经过验证仅仅是个空的对象Subject subject SecurityUtils.getSubject();//绑定主体登陆的身份、凭证 即账号密码UsernamePasswordToken token new UsernamePasswordToken(zhangsan,666);//主体登陆try{subject.login(token);}catch (Exception e){//抛错误}//登陆判断System.out.println(登录结果 subject.isAuthenticated() );//登出判断subject.logout();System.out.println(登出结果 subject.isAuthenticated());} }结果 image.png 源码分析 ①我们在登录操作时打好断点debug运行 image.png ②我们进入到subject主体的实现类中注意标记部分subject将登录操作委托给了securitymanager参数除了页面传入的token以外还有subject主体 image.png ③进入到securitymanager实现类中开始执行认证方法 image.png ④点进去看一下我们发现securitymanager将认证任务委托给了认证器由认证器执行认证方法 image.png ⑤我们进入到认证方法中 image.png ⑥继续执行doAuthenticate我们发现这里面有个realm他是啥呢 image.png 我们看到realms这个集合里面其实就是我们之前加载的realms.ini中的内容 image.png ⑦因为我们只有一个realm所以进入了true条件中这时我们刚才标记出的AuthenticationInfo出现了看看他是啥 image.png 点进去看看 image.png 看不懂继续进去看看我们看到他先把我们的token包装成了 UsernamePasswordToken的形式 然后执行了getuser()参数是我们页面传进来的token的name image.png ⑧我们看一下里面是什么是通过页面传入的那个用户名去我们刚才realm里面的user列表去查找有没有这个用户 如果找到了将realm中该用户信息返回上一层 image.png ⑨这时我们可以看到account中包含了张三的信息 image.png ⑩接下来我们继续返回上一层因为我们已经在realm中找到了页面输入的token的用户名下一步进行密码验证 image.png 密码验证就很简单了重点就是这个判断 image.png 其实就是把我们刚才取得的那个realm中的张三的密码和我们页面传入的密码比较 image.png 好了整个过程大概就是这个样子啦
http://www.yutouwan.com/news/71609/

相关文章:

  • 婚嫁网站建设计划蜜桃传媒
  • 销售网站内容设计wordpress商城微信支付
  • 试用网站开发电子商务网站建设与管理课程评价
  • 银川市住房和城乡建设局网站公告静态网站怎么做有效页
  • 网站html5自适应屏幕安徽网站开发推荐
  • 源码下载网站cms网络推广怎么学
  • 做3d效果图有什么好网站wordpress中等大小
  • 常州网站网站建设微信长图的免费模板网站
  • 网站建站 优化推广没有公司怎么做网站
  • 装修企业网站源码wordpress前台登录认证失败
  • seo网站建设网页制作师培训
  • 网站建设 需求模板黑龙江公司网站建设
  • 定制开发电商网站建设哪家好怎么样更好的做网站
  • 请人做网站多少钱搜索引擎搜索wordpress
  • 辽宁省辽宁省建设厅网站商城服务
  • 网站框架一般用什么做国外ps设计图网站
  • 如何在一个数据库做两个网站怎么做加盟网站
  • 域名解析网站打不开python基础教程完整
  • 林西网站建设优化包河网站建设
  • 怎样免费做书画网站企业商城网站建设
  • 研磨 东莞网站建设seo顾问服务四川
  • 自己做的手工在哪个网站卖会更好网站毕设
  • 网站开发找聚脑网中国小康建设网是骗子网站吗
  • 上海龙雨建设工程有限公司网站石家庄的网站公司
  • 衡水手机网站建设公司广东东莞招聘网最新招聘信息
  • seo整站优化服务教程建站中企动力
  • 网站开发标书范本内容营销的方式
  • 高校网站建设招标公告做一些网站犯法么
  • 秦皇岛网站排名公司网站项目建设管理
  • 做外贸用什么视频网站好wordpress环境安装