`
流浪鱼
  • 浏览: 1682614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

shiro的一些概念

 
阅读更多
//all done - log out!
        currentUser.logout();

 Shiro 的API 使用它的Subject 概念从根本上代表了“当前用户”的概念。

如以下代码:

public static User getSessionUser() {

        Subject subject = SecurityUtils.getSubject();

        if (subject != null && subject.getPrincipal() != null && subject.getPrincipal() instanceof User) {
            return (User) subject.getPrincipal();
        }

        return null;
    }

 让当前用户进行登陆

if (!currentUser.isAuthenticated()) {
            UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", "vespa");
            token.setRememberMe(true);
            try {
                currentUser.login(token);
            } catch (UnknownAccountException uae) {
                log.info("There is no user with username of " + token.getPrincipal());
            } catch (IncorrectCredentialsException ice) {
                log.info("Password for account " + token.getPrincipal() + " was incorrect!");
            } catch (LockedAccountException lae) {
                log.info("The account for username " + token.getPrincipal() + " is locked.  " +
                        "Please contact your administrator to unlock it.");
            }
            // ... catch more exceptions here (maybe custom ones specific to your application?
            catch (AuthenticationException ae) {
                //unexpected condition?  error?
            }
        }

 判断是否有某种角色

//test a role:
        if (currentUser.hasRole("schwartz")) {
            log.info("May the Schwartz be with you!");
        } else {
            log.info("Hello, mere mortal.");
        }

 判断是否有某种权限

//test a typed permission (not instance-level)
        if (currentUser.isPermitted("lightsaber:weild")) {
            log.info("You may use a lightsaber ring.  Use it wisely.");
        } else {
            log.info("Sorry, lightsaber rings are for schwartz masters only.");
        }

        //a (very powerful) Instance Level permission:
        if (currentUser.isPermitted("winnebago:drive:eagle5")) {
            log.info("You are permitted to 'drive' the winnebago with license plate (id) 'eagle5'.  " +
                    "Here are the keys - have fun!");
        } else {
            log.info("Sorry, you aren't allowed to drive the 'eagle5' winnebago!");
        }

 退出系统

 

 

分享到:
评论

相关推荐

    Shiro安全框架概念

    Apache Shiro是一个强大的Java安全框架,它为开发者提供了认证、授权、加密和会话管理等功能,使得在构建...通过理解Shiro的基本概念和组件,开发者能够更有效地利用Shiro保护他们的应用程序,并确保用户数据的安全。

    shiro1.7.1.zip

    在描述中提到的"最新版shiro1.7.1.jar包,安全升级专用",暗示这个版本可能是对之前版本的安全性进行了增强,或者修复了一些已知的安全漏洞,以提供更稳定和安全的服务。 从压缩包子文件的文件名称列表,我们可以...

    shiro例子,及书籍shiro.rar

    3. **加密**:Shiro提供了一些加密工具类,例如`HashService`用于密码哈希,`CipherService`用于数据加密,这些工具可以帮助你安全地存储和处理敏感信息。 4. **会话管理**:Shiro可以跨应用管理用户的会话,包括...

    shiro教程 跟我学Shiro教程

    然后,`shrio-example.rar`提供了一些实战代码示例,帮助开发者更好地理解和运用Shiro。这些示例可能包括简单的登录注销、角色和权限的设置、会话管理等场景。通过运行和分析这些示例,你可以看到Shiro如何在实际...

    Shiro权限管理 的jar包 ,一些example ,shiro资料笔记与核心单词

    1. **Shiro基础概念** - **身份验证(Authentication)**:确认用户身份的过程,通常涉及用户名和密码的校验。 - **授权(Authorization)**:确定用户是否有权限访问特定资源,即权限管理。 - **会话管理...

    Apache shiro 1.13.0源码

    1. **Subject**:Shiro 的核心概念,代表当前系统中的“安全主体”,可以是用户、服务、系统等。Subject 实现了与安全相关的操作,如登录、登出、获取权限等。 2. **Realms**: Realm 是 Shiro 与具体安全数据源...

    Apache_Shiro_使用手册(一)Shiro架构介绍

    大多数情况下,可以将其视为 Shiro 的“用户”概念。Subject 代表了当前用户的所有安全相关操作。 2. **SecurityManager**:安全管理者,是 Shiro 的核心组件之一,采用 Facade 模式设计。它负责管理 Shiro 内部...

    shiro权限案例demo

    1. **Subject**:是Shiro的中心概念,代表了当前“安全的用户”。它提供了进行认证、授权、会话管理和事件监听的主要接口。 2. **Realms**: Realm是Shiro与应用安全数据源(如数据库)的桥梁,它负责验证凭证并...

    shiro最简单整合版本

    在本文中,我们将深入探讨 Apache Shiro 的核心概念及其最简单的整合方式。 一、Shiro 的核心组件 1. 身份认证(Authentication):这是验证用户身份的过程,通常涉及用户名和密码的输入。Shiro 提供了 Realm 接口...

    Shiro入门到精通

    总的来说,“Shiro入门到精通”课程覆盖了从基础概念到高级特性的全面内容,结合源码分析和Spring Security的对比,将使你对Shiro有深入的理解,能够在实际项目中灵活运用。无论你是初学者还是有经验的开发者,都能...

    shiro-all jar

    7. **org.apache.shiro.subject**: Shiro的核心概念,代表当前操作的主体(如用户),包括其认证信息和授权信息。 8. **org.apache.shiro.web**: 针对Web应用的安全管理,提供过滤器、控制器等功能,易于与Servlet...

    shiro-demo_DEMO_shiro_shriodemo_shiro框架demo_shiro前后端分离_

    Shiro 的核心概念** - **Subject**:Shiro 的核心接口,代表当前操作的用户。可以是已认证的用户,也可以是匿名用户。 - **Realms**:Shiro 从 Realm 获取安全信息(如用户、角色、权限)。每个 Realm 对应一个数据...

    shiro项目基本运行架包以及全部的架包shiro-all.jar

    6. **测试支持**:Shiro提供了一些测试工具,方便开发者在单元测试和集成测试中验证安全性。 描述中提到的“解压后会有一个文件夹”,这可能是指解压后的Shiro库包含了多个JAR文件,这些文件通常包括Shiro的核心...

    shiro上课代码.zip

    - **Cryptography**:Shiro内置了一些加密工具,如MD5、SHA等,方便开发者进行数据加密。 - **Session Manager**:管理用户会话,包括创建、销毁、存储会话数据等。 3. **Shiro核心组件** - **SecurityManager**...

    Shiro_lib.zip

    首先,让我们来了解一下Shiro的核心概念: 1. **认证**:也称为身份验证,是确认用户身份的过程。Shiro提供了多种认证方式,包括基于用户名/密码的登录、API令牌等。它支持简单的内存存储和复杂的数据库验证。 2. ...

    跟我学shiro

    4. **加密**:Shiro提供了一些基本的加密工具,如密码哈希、对称和非对称加密算法,帮助开发者对敏感数据进行加密保护。例如,用户密码通常需要存储为哈希值,而不是明文,Shiro提供了简便的方法来实现这一过程。 5...

    shiro源码(shiro-root-1.8.0-source-release.zip)

    Subject是Shiro的中心概念,代表当前用户或系统中的任何实体。Realms是Shiro与应用安全数据源(如数据库、LDAP等)的桥梁,负责验证凭证。CredentialsMatcher则用于比较用户提供的凭证(如密码)和存储在 Realm 中的...

    shiro核心资料笔记

    1. **Subject**:Shiro 的核心概念,代表当前操作用户,它是一个抽象的概念,可以是实际的用户,也可以是系统中的其他实体,如服务、后台进程等。 2. **SecurityManager**:Shiro 的安全管理器,负责协调Subject 和...

    shiro jar包及源码下载

    在学习和使用Shiro时,了解并掌握这些核心概念至关重要。通过阅读"shiro-core-1.3.2-sources.jar"中的源代码,你可以更深入地理解Shiro的内部实现,提升自己的安全编程技能。同时,结合官方文档和其他教程,可以更好...

    springMVC整合shiro框架

    - **Subject**: 表示当前用户或系统的安全主体,可以是用户、服务等,是 Shiro 的核心概念。 - **Session**: Shiro 支持会话管理,可以替代或扩展基于Servlet容器的会话。 - **CachingManager**: 缓存管理器,...

Global site tag (gtag.js) - Google Analytics