美文网首页
权限框架 - shiro 简单入门实例

权限框架 - shiro 简单入门实例

作者: 风间影月 | 来源:发表于2017-10-30 11:16 被阅读50次

    前面的帖子简单的介绍了基本的权限控制,可以说任何一个后台管理系统都是需要权限的

    今天开始咱们来讲讲Shiro

    首先引入基本的jar包

    <!-- shiro -->
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-spring</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-ehcache</artifactId>
            </dependency>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-quartz</artifactId>
            </dependency>
    

    项目工程结构:



    创建shiro-demo.ini:

    user infomation configer: [name=pwd][users]lee=123456nee=654321

    构建一个junit测试最基本的登录登出

    @Test
        public void testLoginAndLogout() {
            // 创建SecurityManager工厂,通过ini配置文件创建 SecurityManager工厂
            Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro/shiro-demo.ini");
            // 创建SecurityManager
            SecurityManager securityManager = factory.getInstance();
            // 设置SecurityManager到运行环境中,保持单例模式
            SecurityUtils.setSecurityManager(securityManager);
            // 从SecurityUtils里边创建一个subject
            Subject subject = SecurityUtils.getSubject();
            // 在认证提交前准备token(令牌)
            // 这里的账号和密码 将来是由用户输入进去
            UsernamePasswordToken token = new UsernamePasswordToken("lee", "123456");
            try {
                // 执行认证提交
                subject.login(token);
            } catch (AuthenticationException e) {
                e.printStackTrace();
            }
            // 是否认证通过
            boolean isAuthenticated = subject.isAuthenticated();
            System.out.println("是否认证通过:" + isAuthenticated);
            // 退出操作
            subject.logout();
            // 是否认证通过
            isAuthenticated = subject.isAuthenticated();
            System.out.println("是否认证通过:" + isAuthenticated);
        }
    

    运行后就可以测试用户名密码正确与否的情况是否能够通过

    用户名不正确,密码不正确,或者用户名不存在都将以异常的信息抛出

    尚自习 | 程序员的进阶平台 itzixi.com

    微信公众号:BeJavaGod

    Java技术交流群

    相关文章

      网友评论

          本文标题:权限框架 - shiro 简单入门实例

          本文链接:https://www.haomeiwen.com/subject/rudppxtx.html