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

比较好看的网站北京建设教育协会官网

比较好看的网站,北京建设教育协会官网,湖南seo优化公司,手机购物网站开发背景#xff1a; 本章将进一步的落地实践学习#xff0c;在springboot中如何去整合shrio#xff0c;整个过程步骤有个清晰的了解。 利用Shiro进行登录认证主要步骤#xff1a; 1. 添加依赖#xff1a;首先#xff0c;在pom.xml文件中添加Spring Boot和Shiro的相关依赖… 背景 本章将进一步的落地实践学习在springboot中如何去整合shrio整个过程步骤有个清晰的了解。 利用Shiro进行登录认证主要步骤 1. 添加依赖首先在pom.xml文件中添加Spring Boot和Shiro的相关依赖。 !-- Spring Boot -- dependency     groupIdorg.springframework.boot/groupId     artifactIdspring-boot-starter-web/artifactId /dependency !-- Shiro -- dependency     groupIdorg.apache.shiro/groupId     artifactIdshiro-spring-boot-starter/artifactId     version1.7.1/version /dependency 2. 创建Shiro配置类创建一个ShiroConfig类用于配置Shiro的相关信息和组件。对于配置的解释和作用见第三章杂谈 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 Configuration public class ShiroConfig {     // 配置安全管理器     Bean     public DefaultWebSecurityManager securityManager() {         DefaultWebSecurityManager securityManager  new DefaultWebSecurityManager();         securityManager.setRealm(myRealm());         return securityManager;     }     // 配置自定义Realm     Bean     public MyRealm myRealm() {         return new MyRealm();     }     // 配置Shiro过滤器     Bean     public ShiroFilterFactoryBean shiroFilterFactoryBean() {         ShiroFilterFactoryBean shiroFilterFactoryBean  new ShiroFilterFactoryBean();         shiroFilterFactoryBean.setSecurityManager(securityManager());         shiroFilterFactoryBean.setLoginUrl(/login); // 设置登录页面         shiroFilterFactoryBean.setUnauthorizedUrl(/unauthorized); // 设置未授权页面         MapString, String filterChainDefinitionMap  new LinkedHashMap();         // 允许匿名访问的路径         filterChainDefinitionMap.put(/login, anon);         filterChainDefinitionMap.put(/static/**, anon);         // 需要认证才能访问的路径         filterChainDefinitionMap.put(/**, authc);         shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);         return shiroFilterFactoryBean;     } } 3. 创建自定义Realm创建一个MyRealm类继承AuthorizingRealm并实现相关方法用于处理认证和授权逻辑 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 public class MyRealm extends AuthorizingRealm {     // 处理认证逻辑     Override     protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {         // 从token中获取用户名         String username (String) authenticationToken.getPrincipal();         // 模拟从数据库或其他存储中获取用户信息         // 例如从数据库中查询用户信息并返回         String dbPassword  123456; // 假设从数据库中查询的密码是123456         // 返回认证信息包括用户名和密码         return new SimpleAuthenticationInfo(username, dbPassword, getName());     }     // 处理授权逻辑     Override     protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {         // 从PrincipalCollection中获取用户名         String username (String) principalCollection.getPrimaryPrincipal();         // 模拟从数据库或其他存储中获取用户角色和权限信息         // 例如从数据库中查询用户对应的角色和权限并返回         SetString roles  new HashSet();         roles.add(admin); // 假设用户拥有admin角色         SetString permissions  new HashSet();         permissions.add(user:read); // 假设用户拥有user:read权限         // 创建授权信息         SimpleAuthorizationInfo authorizationInfo  new SimpleAuthorizationInfo();         authorizationInfo.setRoles(roles);         authorizationInfo.setStringPermissions(permissions);         return authorizationInfo;     } } 4. 创建登录接口和登录页面创建一个登录接口处理用户的登录请求 Controller public class LoginController {     GetMapping(/login)     public String login() {         return login;     }     PostMapping(/login)     public String doLogin(String username, String password) {         // 执行登录逻辑         Subject currentUser SecurityUtils.getSubject();         UsernamePasswordToken token new UsernamePasswordToken(username, password);         try {             currentUser.login(token); // 执行登录             return redirect:/home; // 登录成功后跳转到首页         } catch (AuthenticationException e) {             return redirect:/login-error; // 登录失败后跳转到错误页面         }     } } 整体的执行流程 用户在浏览器中访问登录页面输入用户名和密码并点击登录按钮。 Controller层的LoginController类中的doLogin方法被调用该方法接收用户名和密码作为参数。 创建一个Subject对象该对象代表当前正在与应用程序交互的用户。 创建一个UsernamePasswordToken对象将用户名和密码设置为该对象的属性。 调用Subject对象的login方法将UsernamePasswordToken对象作为参数传递进去。 Subject对象将UsernamePasswordToken对象传递给Shiro进行认证。 Shiro框架会调用MyRealm类中的doGetAuthenticationInfo方法该方法用于处理认证逻辑。 在doGetAuthenticationInfo方法中从UsernamePasswordToken对象中获取用户名。 可以根据需要从数据库或其他存储中获取与用户名对应的用户信息例如密码等。 将获取到的用户信息与UsernamePasswordToken对象中的密码进行比较判断用户是否通过认证。 如果认证成功创建一个SimpleAuthenticationInfo对象将用户名、数据库中的密码和Realm名称作为参数传递给它。 SimpleAuthenticationInfo对象会被返回给Shiro框架表示认证成功。 Shiro框架会将认证成功的信息保存在Subject对象中。 如果认证失败将抛出AuthenticationException异常。 在doLogin方法中通过捕获AuthenticationException异常可以处理登录失败的情况例如重定向到登录失败页面。 如果登录成功可以根据需要执行一些操作例如重定向到首页或其他需要登录后才能访问的页面。 总结起来整个执行流程如下 用户输入用户名和密码并提交登录表单。Controller层的LoginController类中的doLogin方法接收到登录请求。创建Subject对象代表当前用户。创建UsernamePasswordToken对象将用户名和密码设置为其属性。调用Subject对象的login方法将UsernamePasswordToken对象作为参数传入。Shiro框架调用MyRealm类中的doGetAuthenticationInfo方法处理认证逻辑。在doGetAuthenticationInfo方法中获取用户名和密码并与数据库中的信息进行比较。如果认证成功返回一个SimpleAuthenticationInfo对象表示认证通过。如果认证失败抛出AuthenticationException异常。在doLogin方法中根据认证结果执行相应的操作例如重定向到登录成功页面或登录失败页面。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 行动吧在路上总比一直观望的要好未来的你肯定会感谢现在拼搏的自己如果想学习提升找不到资料没人答疑解惑时请及时加入群 731789136里面有各种测试开发资料和技术可以一起交流哦。 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.hkea.cn/news/14564737/

相关文章:

  • 官方网站建设的公司如何用自己的电脑做网站
  • thinkphp网站优化云客网平台
  • 酒托做哪个网站好做网站特别简单的软件
  • 外贸公司英文网站怎么做网站权重排名
  • 做导航网站用什么cms深圳网页设计培训视频
  • 常州做网站的公司有哪些建网络商城网站吗
  • 公司企业如何做网站万网是干什么用的
  • 沈阳网站建设服务电话重庆妇科医院排名
  • 网页网站设计公司wordpress可以装多少会员数据库
  • 个人网站建设方案书框架栏目建立自己的网站平台的好处
  • 湖北联兴建设有限公司网站民宿网络营销方式
  • 北京网站页设计制作wordpress 暂时关闭
  • 厂家高端网站设计地址钢筋网片厂家电话
  • 台州seo网站管理企业融资计划书
  • 常州市建设局网站高端网站设计企业
  • c 网站做微信支付功能作风建设简报--门户网站
  • 网站怎么添加手机版凡科建站源码
  • 做网站设计电脑需要什么配置电子商务公司属于什么行业
  • 快速搭建网站页面重庆娱乐场所最新通知
  • 咖啡网站建设策划书a做爰网站
  • 毕设帮做网站如何建设个人网站和博客
  • 网页升级访问站作一个网站要多少钱
  • 如何看网站的关键词东莞做商城网站建设哪家好
  • 亚马逊品牌网站要怎么做织梦末班和dw建设网站哪个方便优化
  • 可以自己做装修效果图的网站旅游项目网站开发
  • 淘宝联盟建微网站导视设计书籍
  • 建设银行内部网站源码小程序链接如何转成网页链接
  • 网站设计的难点建网站内容
  • 做视频网站公司要怎么做微信精准推广
  • 江苏省交通建设局网站首页软文营销的缺点