Shiro入门案例(1)

shiro应该不用小编多说了,是用来做权限管理用的。

Apache Shiro是一个功能强大且灵活的开源安全框架,可以干净地处理身份验证,授权,企业会话管理和加密。

Apache Shiro的首要目标是易于使用和理解。安全有时可能非常复杂,甚至会很痛苦,但这不是必须的。框架应尽可能掩盖复杂性,并公开简洁直观的API,以简化开发人员确保其应用程序安全的工作。

您可以使用Apache Shiro进行以下操作:

  • 验证用户身份以验证其身份
  • 对用户执行访问控制,例如:
    • 确定是否为用户分配了特定的安全角色
    • 确定是否允许用户做某事
  • 即使在没有Web或EJB容器的情况下,也可以在任何环境中使用Session API。
  • 在身份验证,访问控制或会话的生存期内对事件做出反应。
  • 汇总1个或更多用户安全数据的数据源,并将其全部显示为单个复合用户“视图”。
  • 启用单点登录(SSO)功能
  • 启用“记住我”服务以进行用户关联,而无需登录

    等等-所有这些都集成到一个易于使用的统一API中。

Shiro尝试在所有应用程序环境中实现这些目标-从最简单的命令行应用程序到最大的企业应用程序,而不必强加对其他第三方框架,容器或应用程序服务器的依赖。当然,该项目旨在尽可能地整合到这些环境中,但是它可以在任何环境中直接使用。

shiro有哪些主要的功能

Shiro以Shiro开发团队所谓的“应用程序安全性的四个基石”为目标-身份验证,授权,会话管理和密码学:

  1. 身份验证:有时称为“登录”,这是证明用户是他们所说的身份的行为。
  2. 授权:访问控制的过程,即确定“谁”有权访问“什么”。
  3. 会话管理:即使在非Web或EJB应用程序中,也可以管理用户特定的会话。
  4. 密码术:使用密码算法保持数据安全,同时仍然易于使用。

 

入门案例

使用创建springboot方式创建项目

pom.xml依赖

<dependencies>
        <!--shiro依赖-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>1.2.4</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.12</version>
        </dependency>
    </dependencies>

shiro.ini

shiro.ini做静态数据(账号=密码)

[users]
admin=123456
lisi=123
wangwu=1234

ShiroDey01

package shiro;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;

public class ShiroDey01 {

    public static void main(String[] args) {
        //创建工厂类
        Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
        //得到shiro.ini文件的数据
        SecurityManager securityManager = factory.getInstance();
        //获取当前用户
        SecurityUtils.setSecurityManager(securityManager);
        Subject user = SecurityUtils.getSubject();

        //通过usernamePasswordToken来模拟html/jsp传递过来的用户名和密码
        UsernamePasswordToken token = new UsernamePasswordToken("admin", "123");

        //通过shiro判断是否登录成功
        try {
            user.login(token);
            System.out.println("登录成功");
        } catch (AuthenticationException e) {
            e.printStackTrace();
            System.out.println("登录失败");
        }
    }

}

 

直接通过mian方法启动项目就出结果了。

希望这边文章对您有帮助

 

 

 

 

本站资源除特别声明外,转载文章请声明文章出处
东泰博客 » Shiro入门案例(1)

发表评论