shiro教程1(HelloWorld)

简介: shiro教程1(HelloWorld)

image.png


image.pngimage.png

内部结构框架

image.pngimage.pngimage.pngimage.pngimage.png

#创建对象
securityManager=org.apache.shiro.mgt.DefaultSecurityManager 

image.png

[users] 
zhang=123,role1,role2 
wang=123 

image.png

[roles] 
role1=user:create,user:update 
role2=*  

image.png

/index.html = anon 
/admin/** = authc, roles[admin],perms["permission1"]

image.png

<dependency>
  <groupId>org.apache.shiro</groupId>
  <artifactId>shiro-core</artifactId>
  <version>1.1.0</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.6.1</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>commons-logging</groupId>
  <artifactId>commons-logging</artifactId>
  <version>1.2</version>
</dependency>

image.png

[users]
root = 123456
# 账号为root 密码是 123456

认证操作

@Test
public void test() {
  // 1.获取SecurityManager工厂对象
  Factory<SecurityManager> factory = 
      new IniSecurityManagerFactory("classpath:shiro.ini");
  // 2.通过Factory对象获取SecurityManager对象
  SecurityManager securityManager = factory.getInstance();
  // 3.将SecurityManager对象添加到当前运行环境中
  SecurityUtils.setSecurityManager(securityManager);
  // 4.获取Subject对象
  Subject subject = SecurityUtils.getSubject();
  AuthenticationToken token = new UsernamePasswordToken("root", "123456");
  // 登录操作
  subject.login(token);
  // 获取登录的状态
  System.out.println(subject.isAuthenticated());
}

image.pngimage.pngimage.png

  @Test
  public void test() {
    // 1.获取SecurityManager工厂对象
    Factory<SecurityManager> factory = 
        new IniSecurityManagerFactory("classpath:shiro.ini");
    // 2.通过Factory对象获取SecurityManager对象
    SecurityManager securityManager = factory.getInstance();
    // 3.将SecurityManager对象添加到当前运行环境中
    SecurityUtils.setSecurityManager(securityManager);
    // 4.获取Subject对象
    Subject subject = SecurityUtils.getSubject();
    AuthenticationToken token = new UsernamePasswordToken("root", "111");
    // 登录操作
    try {
      subject.login(token);
    } catch (UnknownAccountException e) {
      System.out.println("账号出错...");
    } catch(IncorrectCredentialsException e){
      System.out.println("密码出错...");
    }
    // 获取登录的状态
    System.out.println(subject.isAuthenticated());
  }

认证流程总结

image.pngimage.pngimage.pngimage.pngimage.pngimage.png

相关文章
|
1月前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
45 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
1月前
|
Java API Apache
Springboot+shiro,完整教程,带你学会shiro
这篇文章提供了一个完整的Apache Shiro与Spring Boot结合使用的教程,包括Shiro的配置、使用以及在非Web和Web环境中进行身份验证和授权的示例。
67 2
Springboot+shiro,完整教程,带你学会shiro
|
5月前
|
Java Maven
SpringBoot快速入门,写一个简单的HelloWorld文件
SpringBoot快速入门,写一个简单的HelloWorld文件
|
Java API Maven
【Shiro】基本使用
1、环境准备 1、Shiro不依赖容器,直接创建maven工程即可 2、添加依赖
90 0
|
安全 Java API
springboot整合shiro (一) ShiroConfig配置类编写
springboot整合shiro (一) ShiroConfig配置类编写
229 0
|
Java API 数据库
Shiro学习之Shiro基本使用(1)
Shiro学习之Shiro基本使用(1)
89 0
|
Java 数据库 数据安全/隐私保护
Shiro学习之Shiro基本使用(2)
Shiro学习之Shiro基本使用(2)
57 0
|
缓存 安全 算法
SpringSecurity笔记之helloworld
SpringSecurity笔记之helloworld
80 0
SpringSecurity笔记之helloworld
|
缓存 安全 Java
SpringBoot整合Shiro_HelloWorld
SpringBoot整合Shiro_HelloWorld
131 0
SpringBoot整合Shiro_HelloWorld
|
Java 程序员 项目管理
SpringBoot入门系列HelloWorld
SpringBoot入门系列HelloWorld
138 0
SpringBoot入门系列HelloWorld
下一篇
无影云桌面