【Apache Shiro】学习笔记一

Apache Shiro 是什么?html

    Apache Shiro 是一个框架,可用于身份验证和受权web

 

Apache Shiro 特性算法

    

    a. 身份认证数据库

    b.访问权限控制(用户与角色的关系;用户与操做的关系)apache

    c.能够在任何场合使用会话管理缓存

    d.支持SSO微信

    e.支持记住密码(支持跨会话的记住身份信息)框架

    f.缓存主要用来进行身份认证和权限控制加密

Shiro 的正常服务能够单独被部署,不必定必须依赖特定环境。除了单独部署使用,也能够与大多数框架融合使用。spa

 

关键词释义

    Authentication:认证,也就是验证用户的身份,就是肯定你是否是你,好比经过用户名、密码的方式验证,或者某些第三方认证,好比微信认证。

    Authorization:受权,也叫访问控制,也就是看你是否有权限作什么事情,好比是否有权限看某个文件,或者是否有权限作后台管理;

    Cipher:加密方式,这里主要有几种经常使用的加密方式,好比分组密码(Block Ciphers)、流密码(Stream Ciphers)、对称加密(Symmetric Ciphers)、非对称加密(Asymmetric Ciphers)

    Credential:证书,好比密码、指纹或者网银的Key都算是证书的一种。系统经过将用户提供的证书和系统存储的证书比较,若是一致就认为用户的身份是对的;

    Hash:哈希,一种单相的数据加密算法;

    Persmission:权限,用于描述系统的某项基础功能,好比 “打开一个文件”,“查看’/user/list/’页面”,“打印文档”,这些都算是一种权限;

    Principal:身份,就是一种用于标识用户身份的一种属性,好比邮箱、电话号码、用户名、微信号等;

    Realm:这是一个用于访问应用程序的用户、角色、权限的组件,能够把它看作是Shiro的DAO(Data Access Object),用于把各类存储介质(好比关系数据库、LDAP、文件)内的用户权限数据转换为Shiro可以理解的格式。

    Role:角色,在Shiro中,角色就是权限的组合;

    Session:会话,也就是用户登陆以后的上下文,在用户登出以前能够不用传递用户名、密码就能够作各类操做;

    Subject:起始就是user,可是在Shiro中把它叫作Subject,由于和咱们系统交互的不必定是人,也多是其余的系统。

 

重要操做:

    获取当前用户

Subject user= SecurityUtils.getSubject();

 

    验证登陆

UsernamePasswordToken token = new UsernamePasswordToken(username, password);
Subject subject = SecurityUtils.getSubject();
try {
    subject.login(token);
    return R.ok();
} catch (AuthenticationException e) {
    return R.error("用户或密码错误");
}

拥有某个角色

currentUser.hasRole(RoleName)

拥有某个权限

currentUser.isPermitted("order:add")

用户是否有权限访问某种类型数据的某个具体实例

currentUser.isPermitted("order:get:order2")

几个简单的操做基本能够知足认证和权限两部分的平常操做

参考 : http://www.cnblogs.com/strinkbug/p/6117353.html

参考:  https://www.ibm.com/developerworks/cn/web/wa-apacheshiro/index.html

参考:  https://www.infoq.com/articles/apache-shiro

相关文章
相关标签/搜索