网站推荐、资源下载等 | 个人网站

shiro的简单入门使用

这里只是测试登录认证,没有web模块,没有连接数据库,用户密码放在shiro.ini配置中,密码没有加密处理,简单入门。

 

基于maven

 

先看目录结构

 

测试结果

 

pom.xml

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 
  3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5   <modelVersion>4.0.0</modelVersion>
  6 
  7   <groupId>com.xiaostudy</groupId>
  8   <artifactId>shiro_test2</artifactId>
  9   <version>1.0-SNAPSHOT</version>
 10   <packaging>war</packaging>
 11 
 12   <name>shiro_test2 Maven Webapp</name>
 13   <!-- FIXME change it to the project's website -->
 14   <url>http://www.example.com</url>
 15 
 16   <properties>
 17     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 18     <maven.compiler.source>1.7</maven.compiler.source>
 19     <maven.compiler.target>1.7</maven.compiler.target>
 20     <shiro.version>1.3.0</shiro.version>
 21     <quartz.version>2.2.3</quartz.version>
 22     <cas.client.version>3.1.9</cas.client.version>
 23     <junit.version>4.12</junit.version>
 24     <slf4j.version>1.7.7</slf4j.version>
 25     <log4j.version>1.2.17</log4j.version>
 26   </properties>
 27 
 28   <dependencies>
 29     <!-- shiro包开始 -->
 30     <dependency>
 31       <groupId>org.apache.shiro</groupId>
 32       <artifactId>shiro-ehcache</artifactId>
 33       <version>${shiro.version}</version>
 34     </dependency>
 35     <dependency>
 36       <groupId>org.apache.shiro</groupId>
 37       <artifactId>shiro-core</artifactId>
 38       <version>${shiro.version}</version>
 39     </dependency>
 40     <dependency>
 41       <groupId>org.apache.shiro</groupId>
 42       <artifactId>shiro-web</artifactId>
 43       <version>${shiro.version}</version>
 44     </dependency>
 45     <dependency>
 46       <groupId>org.apache.shiro</groupId>
 47       <artifactId>shiro-spring</artifactId>
 48       <version>${shiro.version}</version>
 49     </dependency>
 50     <dependency>
 51       <groupId>org.quartz-scheduler</groupId>
 52       <artifactId>quartz</artifactId>
 53       <version>${quartz.version}</version>
 54       <exclusions>
 55         <exclusion>
 56           <artifactId>c3p0</artifactId>
 57           <groupId>c3p0</groupId>
 58         </exclusion>
 59       </exclusions>
 60     </dependency>
 61     <dependency>
 62       <groupId>org.apache.shiro</groupId>
 63       <artifactId>shiro-cas</artifactId>
 64       <version>${shiro.version}</version>
 65     </dependency>
 66     <dependency>
 67       <groupId>org.jasig.cas</groupId>
 68       <artifactId>cas-client-core</artifactId>
 69       <version>${cas.client.version}</version>
 70     </dependency>
 71     <!-- shiro 包结束 -->
 72 
 73     <!--测试-->
 74     <dependency>
 75       <groupId>junit</groupId>
 76       <artifactId>junit</artifactId>
 77       <version>${junit.version}</version>
 78       <scope>test</scope>
 79     </dependency>
 80 
 81     <!-- 日志文件管理包 -->
 82     <dependency>
 83       <groupId>log4j</groupId>
 84       <artifactId>log4j</artifactId>
 85       <version>${log4j.version}</version>
 86     </dependency>
 87     <dependency>
 88       <groupId>org.slf4j</groupId>
 89       <artifactId>slf4j-api</artifactId>
 90       <version>${slf4j.version}</version>
 91     </dependency>
 92     <dependency>
 93       <groupId>org.slf4j</groupId>
 94       <artifactId>slf4j-log4j12</artifactId>
 95       <version>${slf4j.version}</version>
 96     </dependency>
 97 
 98     <dependency>
 99       <groupId>junit</groupId>
100       <artifactId>junit</artifactId>
101       <version>4.11</version>
102       <scope>test</scope>
103     </dependency>
104 
105     <dependency>
106       <groupId>org.junit.jupiter</groupId>
107       <artifactId>junit-jupiter-api</artifactId>
108       <version>RELEASE</version>
109       <scope>compile</scope>
110     </dependency>
111   </dependencies>
112 
113   <build>
114     <finalName>shiro_test2</finalName>
115     <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
116       <plugins>
117         <plugin>
118           <artifactId>maven-clean-plugin</artifactId>
119           <version>3.1.0</version>
120         </plugin>
121         <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
122         <plugin>
123           <artifactId>maven-resources-plugin</artifactId>
124           <version>3.0.2</version>
125         </plugin>
126         <plugin>
127           <artifactId>maven-compiler-plugin</artifactId>
128           <version>3.8.0</version>
129         </plugin>
130         <plugin>
131           <artifactId>maven-surefire-plugin</artifactId>
132           <version>2.22.1</version>
133         </plugin>
134         <plugin>
135           <artifactId>maven-war-plugin</artifactId>
136           <version>3.2.2</version>
137         </plugin>
138         <plugin>
139           <artifactId>maven-install-plugin</artifactId>
140           <version>2.5.2</version>
141         </plugin>
142         <plugin>
143           <artifactId>maven-deploy-plugin</artifactId>
144           <version>2.8.2</version>
145         </plugin>
146       </plugins>
147     </pluginManagement>
148   </build>
149 </project>

 

 shiro.ini

1 #对用户信息进行配置
2 [users]
3 #用户账号和密码
4 zhangsan=123456
5 lisi=654321

 

log4j.properties

1 log4j.rootLogger=debug, stdout
2 
3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
5 log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m %n

 

测试代码

 1 package com.xiaostudy.test;
 2 
 3 import org.apache.shiro.SecurityUtils;
 4 import org.apache.shiro.authc.AuthenticationException;
 5 import org.apache.shiro.authc.UsernamePasswordToken;
 6 import org.apache.shiro.config.IniSecurityManagerFactory;
 7 import org.apache.shiro.mgt.DefaultSecurityManager;
 8 import org.apache.shiro.realm.text.IniRealm;
 9 import org.apache.shiro.subject.Subject;
10 import org.apache.shiro.util.Factory;
11 import org.junit.jupiter.api.Test;
12 
13 /**
14  * Created with IntelliJ IDEA.
15  * @author xiaostudy
16  * Date: 2019/4/29
17  * Time: 10:20
18  * Description: No Description
19  */
20 public class Test1 {
21 
22     // 用户登录和退出
23     @Test
24     public void testLoginAndLogout() {
25 
26         DefaultSecurityManager defaultSecurityManager = new DefaultSecurityManager();
27         IniRealm iniRealm = new IniRealm("classpath:shiro.ini");
28         defaultSecurityManager.setRealm(iniRealm);
29         SecurityUtils.setSecurityManager(defaultSecurityManager);
30 
31         // 从SecurityUtils中创建一个subject  (org.apache.shiro.subject.Subject) 即主体
32         Subject subject = SecurityUtils.getSubject();
33 
34         // 在认证提交前准备token(令牌)   这里的账号和密码 将来是由用户输入进去的
35         UsernamePasswordToken token = new UsernamePasswordToken("zhangsan", "123456");
36 
37         //执行认证提交
38         try {
39             subject.login(token);
40         } catch (AuthenticationException e) {
41             e.printStackTrace();
42         }
43 
44 
45         // 是否认证通过 (org.apache.shiro.authc.Authenticator) 即认证器
46         boolean isAuthenticated = subject.isAuthenticated();
47         System.out.println("是否认证通过:"+isAuthenticated);
48         if(isAuthenticated) {
49             System.out.println("subject:" + subject);
50             System.out.println("用户:" + subject.getPrincipal());
51             System.out.println("getPrincipal().getClass(): " + subject.getPrincipal().getClass());
52         }
53 
54         //退出操作
55         subject.logout();
56 
57         // 是否认证通过
58         isAuthenticated = subject.isAuthenticated();
59         System.out.println("是否认证通过:"+isAuthenticated);
60     }
61 }

 

posted @ 2019-04-29 11:09  xiaostudy  阅读(2688)  评论(0编辑  收藏  举报
网站推荐
[理工最爱]小时百科 |  GitHub |  Gitee |  开源中国社区 |  牛客网 |  不学网论坛 |  r2coding |  冷熊简历 |  爱盘 |  零散坑 |  bootstrap中文网 |  vue.js官网教程 |  源码分享站 |  maven仓库 |  楼教主网站 |  廖雪峰网站 |  w3cschool |  在线API |  代码在线运行 |  [不学网]代码在线运行 |  JS在线运行 |  PHP中文网 |  深度开源eclipse插件 |  文字在线加密解密 |  菜鸟教程 |  慕课网 |  千图网 |  手册网 |  素材兔 |  盘多多 |  悦书PDF |  sumatra PDF |  calibre PDF |  Snipaste截图 |  shareX截图 |  vlc-media-player播放器 |  MCMusic player |  IDM下载器 |  格式工厂 |  插件网 |  谷歌浏览器插件 |  Crx搜搜 |  懒人在线计算器 |  leetcode算法题库 |  layer官网 |  layui官网 |  formSelects官网 |  Fly社区 |  程序员客栈 |  融云 |  华为云 |  阿里云 |  ztree官网API |  teamviewer官网 |  sonarlint官网 |  editormd |  pcmark10官网 |  crx4chrome官网 |  apipost官网 |  花生壳官网 |  serv-u官网 |  杀毒eset官网 |  分流抢票bypass官网 |  懒猴子CG代码生成器官网 |  IT猿网 |  natapp[内网穿透] |  ngrok[内网穿透] |  深蓝穿透[内网穿透] |  WakeMeOnLan[查看ip] |  iis7 |  [漏洞扫描]Dependency_Check官网 |  [图标UI]fontawesome官网 |  idea插件官网 |  路过图床官网 |  sha256在线解密 |  在线正则表达式测试 |  在线文件扫毒 |  KuangStudy | 
资源下载
电脑相关: Windows原装下载msdn我告诉你 |  U盘制作微PE工具官网下载 |  Linux_CentOS官网下载 |  Linux_Ubuntu官网下载 |  Linux_OpenSUSE官网下载 |  IE浏览器官网下载 |  firefox浏览器官网下载 |  百分浏览器官网下载 |  谷歌google浏览器历史版本下载 |  深度deepin系统官网下载 |  中兴新支点操作系统官网下载 |  文件对比工具Beyond Compare官网下载 |  开机启动程序startup-delayer官网下载 |  openoffice官网下载 |  utorrent官网下载 |  qbittorrent官网下载 |  cpu-z官网下载 |  蜘蛛校色仪displaycal官网下载 |  单文件制作greenone下载 |  win清理工具Advanced SystemCare官网下载 |  解压bandizip官网下载 |  内存检测工具memtest官网下载 |  磁盘坏道检测与修复DiskGenius官网下载 |  磁盘占用可视化SpaceSniffer官网下载 |  [磁盘可视化]WizTree官网下载 |  win快速定位文件Everything官网下载 |  文件定位listary官网下载 |  动图gifcam官网下载 |  7-Zip官网下载 |  磁盘分区工具diskgenius官网下载 |  CEB文件查看工具Apabi Reader官网下载 |  罗技鼠标options官网下载 |  [去除重复文件]doublekiller官网下载 | 
编程相关: ApacheServer官网下载 |  Apache官网下载 |  Git官网下载 |  Git高速下载 |  Jboss官网下载 |  Mysql官网下载 |  Mysql官网历史版本下载 |  NetBeans IDE官网下载 |  Spring官网下载 |  Nginx官网下载 |  Resin官网下载 |  Tomcat官网下载 |  jQuery历史版本下载 |  nosql官网下载 |  mongodb官网下载 |  mongodb_linux历史版本下载 |  mongodb客户端下载 |  VScode官网下载 |  cxf官网下载 |  maven官网下载 |  QT官网下载 |  SVN官网下载 |  SVN历史版本下载 |  nodeJS官网下载 |  oracle官网下载 |  jdk官网下载 |  STS官网下载 |  STS历史版本官网下载 |  vue官网下载 |  virtualbox官网下载 |  docker desktop官网下载 |  github desktop官网下载 |  EditPlus官网下载 |  zTree下载 |  layui官网下载 |  jqgrid官网下载 |  jqueryui官网下载 |  solr历史版本下载 |  solr分词器ik-analyzer-solr历史版本下载 |  zookeeper历史版本官网下载 |  nssm官网下载 |  elasticsearch官网下载 |  elasticsearch历史版本官网下载 |  redis官网下载 |  redis历史版本官网下载 |  redis的win版本下载 |  putty官网下载 |  查看svn密码TSvnPD官网下载 |  MongoDB连接工具Robo官网下载 |  dll查看exescope官网下载 |  dll2c官网下载 |  接口测试apipost官网下载 |  接口测试postman官网下载 |  原型设计工具AxureRP官网下载 |  canal官网下载 |  idea主题样式下载 |  vue的GitHub下载 |  finalShell官网下载 |  ETL工具kafka官网下载 |  cavaj[java反编译]官网下载 |  jd-gui[java反编译]官网下载 |  radmin[远程连接]官网下载 |  tcping[win ping端口]下载 |  jQueryUploadFile官网下载 |  RedisPlus下载 |  aiXcoder智能编程助手官网下载 |  [表单效验]validform官网下载 |  idea官网下载 |  RedisStudio下载 |  MD转word含公式pandoc官网下载 |  logviewer官网下载 |  Kafka官网下载 |  hbase高速下载 |  hadoop官网下载 |  hadooponwindows的GitHub下载 |  hive官网下载 |  soapui官网下载 |  flink官网下载 |  kafkatool官网下载 |  MinIO官网下载 |  MinIO中国镜像下载 | 
办公相关工具
免费在线拆分PDF【不超过30M】 |  免费在线PDF转Word【不超过10M】 |  在线文字识别转换【不超过1M】 |  PDF转换成Word【不超过50M】 |  在线OCR识别 |  Smallpdf |  文件转换器Convertio |  迅捷PDF转换器 |  字母大小写转换工具 |  档铺 |  快传airportal[可文字] |  快传-文叔叔 |  P2P-小鹿快传 |  [图床]ImgURL | 
网站入口
腾讯文档 |  有道云笔记网页版 |  为知笔记网页版 |  印象笔记网页版 |  蓝奏云 |  QQ邮箱 |  MindMaster在线思维导图 |  bilibili |  PDM文件在线打开 |  MPP文件在线打开 |  在线PS软件 |  在线WPS |  阿里云企业邮箱登陆入口 | 
其他
PDF转换 |  悦书PDF转换 |  手机号注册查询 |  Reg007 |  akmsg |  ip8_ip查询 |  ipip_ip查询 |  天体运行testtubegames |  测试帧率 |  在线网速测试 |