资讯专栏INFORMATION COLUMN

Shiro权限管理(二)——认证

you_De / 1068人阅读

摘要:我认为无论是也好,还是其他安全框架也好,其功能主要就分为三部分认证授权加密。的认证授权管理,都需要由负责。构建环境主体提交认证请求认证创建环境,我们这里使用的是。最后我们使用进行认证。认证我们先说这么多,下节我们来说说的简单授权。

时隔这么久终于有时间更新了,今天和大家分享一下Shiro的原理。我认为无论是Shiro也好,还是其他安全框架也好,其功能主要就分为三部分:认证、授权、加密。下面我们来详细说明Shiro具体是如何实现的。
Shiro结构图

讲原理当然离不开结构图,我们先来看一下Shiro的整体结构。

由Shiro的结构图我们可以看出Shiro的核心就是Security Manager。Shiro的认证、授权、Session管理,都需要由Security Manager负责。

Shiro认证

下面我们用一个小例子来了解一下Shiro 的简单用法。

public class HelloShiro {
    SimpleAccountRealm realm = new SimpleAccountRealm();

    @Before
    public void addUser() {
        realm.addAccount("Mark", "123456");
    }

    @Test
    public void testSimlpeRealm() {

        // 1.构建securityManager环境
        DefaultSecurityManager securityManager = new DefaultSecurityManager();
        securityManager.setRealm(realm);
        // 2.主体提交认证请求
        SecurityUtils.setSecurityManager(securityManager);
        Subject subject = SecurityUtils.getSubject();
        AuthenticationToken token = new UsernamePasswordToken("Mark", "123456");
        // 3. 认证
        subject.login(token);
        System.out.println(subject.isAuthenticated());

    }
}

创建securityManager环境,我们这里使用的是DefaultSecurityManager。

设置Realm,Realm主要主要负责Subject的认证和授权。其中最重要的两个方法是doGetAuthenticationInfodoGetAuthorizationInfo,这也是我们整个权限管理的最重要的一部分,由于这里我们只是一个入门程序,我们就使用Shiro定义好的SimpleAccountRealm作为演示,后面我们还会说到JdbcRealm和自定义Realm。

通过SecurityUtils设置securityManager和获取subject;

创建需要认证的token信息,这是我们自己创建一个UsernamePasswordToken来模拟获取用户从前台登陆的账号密码。

最后我们使用subject.login(token);进行认证。若tonken中的账号密码和我们addUser()添加的相同则测试通过,否则则会抛出异常。

Shiro认证我们先说这么多,下节我们来说说Shiro的简单授权。如果大家有好的意见和建议请在评论区留言,谢谢大家。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69170.html

相关文章

  • Shiro【授权过滤器、与ehcache整合、验证码、记住我】

    摘要:为了达到很好的效果,我们使用来对的缓存进行管理配置会话管理器,对会话时间进行控制手动清空缓存由于验证用户名和密码之前,一般需要验证验证码的。 前言 本文主要讲解的知识点有以下: Shiro授权过滤器使用 Shiro缓存 与Ehcache整合 Shiro应用->实现验证码功能 记住我功能 一、授权过滤器测试 我们的授权过滤器使用的是permissionsAuthorization...

    K_B_Z 评论0 收藏0
  • Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】

    摘要:细粒度权限管理就是数据级别的权限管理。张三只能查看行政部的用户信息,李四只能查看开发部门的用户信息。比如通过的拦截器实现授权。 前言 本文主要讲解的知识点有以下: 权限管理的基础知识 模型 粗粒度和细粒度的概念 回顾URL拦截的实现 Shiro的介绍与简单入门 一、Shiro基础知识 在学习Shiro这个框架之前,首先我们要先了解Shiro需要的基础知识:权限管理 1.1什...

    chenjiang3 评论0 收藏0
  • Shiro【授权、整合Spirng、Shiro过滤器】

    摘要:表示对用户资源进行操作,相当于,对所有用户资源实例进行操作。与整合,实际上的操作都是通过过滤器来干的。将安全管理器交由工厂来进行管理。在过滤器链中设置静态资源不拦截。 前言 本文主要讲解的知识点有以下: Shiro授权的方式简单介绍 与Spring整合 初始Shiro过滤器 一、Shiro授权 上一篇我们已经讲解了Shiro的认证相关的知识了,现在我们来弄Shiro的授权 Shir...

    ralap 评论0 收藏0
  • Spring Security

    摘要:框架具有轻便,开源的优点,所以本译见构建用户管理微服务五使用令牌和来实现身份验证往期译见系列文章在账号分享中持续连载,敬请查看在往期译见系列的文章中,我们已经建立了业务逻辑数据访问层和前端控制器但是忽略了对身份进行验证。 重拾后端之Spring Boot(四):使用JWT和Spring Security保护REST API 重拾后端之Spring Boot(一):REST API的搭建...

    keelii 评论0 收藏0
  • apache shiro框架

    摘要:框架提供的接口,是的核心,代表安全管理器对象。可以开发人员编写,框架也提供一些。在中作为应用程序和安全数据之间的桥梁或连接器。例如要求中必须同时含有和的权限才能执行方法。 apache shiro框架简介  Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密。现在,使用Apache Shiro的人越来越多,因为它相当简单,相比比Sp...

    Tecode 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<