• Shiro的认证授权


    shiro安全框架入门整理

    package com.shiro.test;
    
    import org.apache.shiro.SecurityUtils;
    import org.apache.shiro.authc.UsernamePasswordToken;
    import org.apache.shiro.mgt.DefaultSecurityManager;
    import org.apache.shiro.realm.SimpleAccountRealm;
    import org.apache.shiro.subject.Subject;
    import org.junit.Before;
    import org.junit.Test;
    
    /**
     * llh
     */
    public class AuthenticationTest {
    
    
        SimpleAccountRealm simpleAccountRealm = new SimpleAccountRealm();
    
        @Before
        public void addUser(){
            simpleAccountRealm.addAccount("llh","123456","admin","user");
        }
    
        @Test
        public void testAuthentication(){
    
            //1、构建SecurityManager环境
            DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
            defaultSecurityManager.setRealm(simpleAccountRealm);
    
            //2、主体提交认证请求
            SecurityUtils.setSecurityManager(defaultSecurityManager);
            Subject subject = SecurityUtils.getSubject();
    
            UsernamePasswordToken token = new UsernamePasswordToken("llh","123456");
            subject.login(token);
    
            System.out.println(subject.isAuthenticated());
    
            subject.checkRoles("admin","user");
        }
    }
    

      需要加入两个jar包依赖

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>shiro</artifactId>
            <groupId>com.shiro</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>shiro-test</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.shiro</groupId>
                <artifactId>shiro-core</artifactId>
                <version>1.4.0</version>
            </dependency>
    
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>RELEASE</version>
            </dependency>
        </dependencies>
    </project>
    

      

  • 相关阅读:
    【JavaScript】浅析IIFE(立即执行函数表达式)的作用
    【HTML】HTML之marquee详解
    【jsp】jsp中的动作元素
    【Spring】SpringMVC之基于注解的实现SpringMVC+MySQL
    【java】Java泛型
    【JavaScript】javascript中伪协议(javascript:)使用探讨
    【JavaScript】innerHTML、innerText和outerHTML的用法区别
    【HTML】Html页面跳转的5种方式
    【Spring】SpringMVC中浅析数据的传递方式
    【Spring】SpringMVC非注解配置的两种方式
  • 原文地址:https://www.cnblogs.com/javallh/p/9214577.html
Copyright © 2020-2023  润新知