zoukankan      html  css  js  c++  java
  • shiro框架的学习

     前端传入账号密码,在后台封装成token,交给Sercurity比对是否账号密码正确,正确则赋予认证通过,并获得权限。

    realm负责从tonken获取的账号密码与数据库的账号比对,不正确抛出异常,并把登录的密码(数据库查出)正确的结果返回给AuthenticationInfo完成认证,此时shiro已经对

    用户的账号密码有了验证。前端传入的账号密码通过传给token去shiro验证就可以了,正确通过不正确不能登录。

    封装认证和授权的消息只负责获取和封装(业务层的一部负责封装数据)。

    Securitu  Manager(获取realm封装的数据来具体实行如何认证和授权)来完成授权和管理功能。

     用户认证和授权的封装

    public class ShiroUserRealm extends AuthorizingRealm {

    }

    负责用户认证信息的获取以及封装

    protected AuthenticationInfo doGetAuthenticationInfo(
    AuthenticationToken token) throws AuthenticationException {

    return info;//将此值返回给认证管理器(Authentication)
    }

    将控制层获得的token数据传到这里  与数据库数据进行对比,如果验证符合则认证成功允许访问,不通过则返回登录页。

    负责用户授权信息({"sys:user:valid",...})
     的获取及封装
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {

    return info;//此对象会传递给谁?授权管理器
    }
    }

    通过token获取登录人的信息与数据库进行比对,并获取数据库中该账号的权限信息。并返回给 doGetAuthorizationInfo对象。

       

     

  • 相关阅读:
    c++数据类型
    c++注释
    c++基本语法
    c++环境配置
    c++简介
    9 HTTP和HTTPS
    12 RESTful架构(SOAP,RPC)
    剑指10二进制中1的个数
    第2章 新手必须掌握的Linux命令
    11个炫酷的Linux终端命令大全
  • 原文地址:https://www.cnblogs.com/xiaoshazi/p/13178346.html
Copyright © 2011-2022 走看看