Shiro 入门

一个Shiro的入门maven实例。

环境:jdk1.8+maven+Eclipse


创建一个maven项目Shiro01,pom.xml如下。

<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">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.java1234</groupId>
  <artifactId>Shiro01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Shiro01</name>
  <description>Shiro01</description>
  
  <dependencies>
	<dependency>
	    <groupId>org.apache.shiro</groupId>
	    <artifactId>shiro-core</artifactId>
	    <version>1.2.4</version>
	</dependency>
	
	<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
	<dependency>
	    <groupId>org.slf4j</groupId>
	    <artifactId>slf4j-log4j12</artifactId>
	    <version>1.7.12</version>
	    <scope>test</scope>
	</dependency>
  </dependencies>
</project>

引入shiro的包,以及slf4j包等。

在resources目录新建一个配置文件,shiro.ini ,内容如下。

[users]
java=123456
jack=123

将log4j的配置文件也放入resources目录下

建立一个java类,内容如下:

package com.java.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 HelloWorld {
	public static void main(String[] args) {
		//读取配置文件,初始化SecurityManager工厂
		Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
		//获取SecurityManager实例
		SecurityManager securityManager = factory.getInstance();
		//把securityManager 实例绑定到SecurityUtils
		SecurityUtils.setSecurityManager(securityManager);
		//得到当前执行额用户
		Subject currentUser = SecurityUtils.getSubject();
		//创建token令牌,用户名/密码
		UsernamePasswordToken token = new UsernamePasswordToken("java","123456");
		try {
			//身份认证
			currentUser.login(token);
			System.out.println("身份认证成功");
		} catch (AuthenticationException e) {
			e.printStackTrace();
			System.out.println("身份认证失败");
		}
	}
}

运行

结果为:身份认证成功。


参考内容:《一头扎进Shiro系列》

猜你喜欢

转载自blog.csdn.net/qq_38384568/article/details/77865594