diff --git a/pom.xml b/pom.xml
index 06c4cbb..228c7a8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -72,6 +72,7 @@
org.apache.tomcat
tomcat-jasper
+ 9.0.10
@@ -83,7 +84,11 @@
javax.servlet
jstl
-
+
+ org.projectlombok
+ lombok
+ true
+
diff --git a/sql.sql b/sql.sql
new file mode 100644
index 0000000..11243da
--- /dev/null
+++ b/sql.sql
@@ -0,0 +1,71 @@
+DROP DATABASE db_shiroTest;
+GRANT ALL ON db_shiroTest.* TO trs@localhost IDENTIFIED BY 'shiro';
+flush privileges;
+CREATE DATABASE IF NOT EXISTS db_shiroTest DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
+USE db_shiroTest;
+-- 权限表 --
+CREATE TABLE permission (
+ pid INT(11) NOT NULL AUTO_INCREMENT,
+ name VARCHAR(255) NOT NULL DEFAULT '',
+ url VARCHAR(255) DEFAULT '',
+ PRIMARY KEY (pid)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
+
+-- 用户表 --
+CREATE TABLE user (
+ uid INT(11) NOT NULL AUTO_INCREMENT,
+ username VARCHAR(255) NOT NULL DEFAULT '',
+ password VARCHAR(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (uid)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
+
+-- 角色表 --
+CREATE TABLE role (
+ rid INT(11) NOT NULL AUTO_INCREMENT,
+ rname VARCHAR(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (rid)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
+
+-- 权限角色关系表 --
+CREATE TABLE permission_role (
+ rid INT(11) NOT NULL,
+ pid INT(11) NOT NULL,
+ CONSTRAINT FK_prid FOREIGN KEY (rid) REFERENCES role (rid),
+ CONSTRAINT FK_pid FOREIGN KEY (pid) REFERENCES permission (pid)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
+
+-- 用户角色关系表 --
+CREATE TABLE user_role (
+ rid INT(11) NOT NULL,
+ uid INT(11) NOT NULL,
+ CONSTRAINT FK_urid FOREIGN KEY (rid) REFERENCES role (rid),
+ CONSTRAINT FK_uid FOREIGN KEY (uid) REFERENCES user (uid)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
+
+-- 初始化数据 --
+INSERT INTO permission (pid,name, url) VALUE ('1','add','');
+INSERT INTO permission (pid,name, url) VALUE ('2','delete','');
+INSERT INTO permission (pid,name, url) VALUE ('3','edit','');
+INSERT INTO permission (pid,name, url) VALUE ('4','query','');
+
+INSERT INTO user (uid,username, password) VALUE ('1','admin','0000');
+INSERT INTO user (uid,username, password) VALUE ('2','trs','trs');
+
+INSERT INTO role (rid,rname) VALUE ('1','admin');
+INSERT INTO role (rid,rname) VALUE ('2','customer');
+INSERT INTO role (rid,rname) VALUE ('3','guest');
+
+INSERT INTO permission_role (rid, pid) VALUE ('1','1');
+INSERT INTO permission_role (rid, pid) VALUE ('1','2');
+INSERT INTO permission_role (rid, pid) VALUE ('1','3');
+INSERT INTO permission_role (rid, pid) VALUE ('1','4');
+
+INSERT INTO permission_role (rid, pid) VALUE ('2','1');
+INSERT INTO permission_role (rid, pid) VALUE ('1','3');
+INSERT INTO permission_role (rid, pid) VALUE ('1','4');
+INSERT INTO permission_role (rid, pid) VALUE ('3','4');
+
+INSERT INTO user_role (rid, uid) VALUE ('1','1');
+INSERT INTO user_role (rid, uid) VALUE ('2','2');
+
+
diff --git a/src/main/java/top/fjy8018/shiro/dataobject/Permission.java b/src/main/java/top/fjy8018/shiro/dataobject/Permission.java
new file mode 100644
index 0000000..1aeff10
--- /dev/null
+++ b/src/main/java/top/fjy8018/shiro/dataobject/Permission.java
@@ -0,0 +1,17 @@
+package top.fjy8018.shiro.dataobject;
+
+import lombok.Data;
+
+/**
+ * @author F嘉阳
+ * @date 2018/7/5 21:14
+ */
+@Data
+public class Permission {
+
+ private Integer pid;
+
+ private String name;
+
+ private String url;
+}
diff --git a/src/main/java/top/fjy8018/shiro/dataobject/Role.java b/src/main/java/top/fjy8018/shiro/dataobject/Role.java
new file mode 100644
index 0000000..212c700
--- /dev/null
+++ b/src/main/java/top/fjy8018/shiro/dataobject/Role.java
@@ -0,0 +1,18 @@
+package top.fjy8018.shiro.dataobject;
+
+import lombok.Data;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Data
+public class Role {
+
+ private Integer rid;
+
+ private String name;
+
+ private Set permissions = new HashSet<>();
+
+ private Set users = new HashSet<>();
+}
diff --git a/src/main/java/top/fjy8018/shiro/dataobject/User.java b/src/main/java/top/fjy8018/shiro/dataobject/User.java
new file mode 100644
index 0000000..6b41415
--- /dev/null
+++ b/src/main/java/top/fjy8018/shiro/dataobject/User.java
@@ -0,0 +1,17 @@
+package top.fjy8018.shiro.dataobject;
+
+import lombok.Data;
+
+import java.util.HashSet;
+import java.util.Set;
+
+@Data
+public class User {
+
+ private Integer uid;
+
+ private String password;
+
+ private Set roles = new HashSet<>();
+
+}
diff --git a/src/main/java/top/fjy8018/shiro/mapper/UserMapper.java b/src/main/java/top/fjy8018/shiro/mapper/UserMapper.java
new file mode 100644
index 0000000..147534d
--- /dev/null
+++ b/src/main/java/top/fjy8018/shiro/mapper/UserMapper.java
@@ -0,0 +1,13 @@
+package top.fjy8018.shiro.mapper;
+
+import org.apache.ibatis.annotations.Param;
+import top.fjy8018.shiro.dataobject.User;
+
+/**
+ * @author F嘉阳
+ * @date 2018/7/5 21:24
+ */
+public interface UserMapper {
+
+ User findByUsername(@Param("username") String username);
+}
diff --git a/src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java b/src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java
new file mode 100644
index 0000000..7cb1104
--- /dev/null
+++ b/src/main/java/top/fjy8018/shiro/service/Impl/UserServiceImpl.java
@@ -0,0 +1,24 @@
+package top.fjy8018.shiro.service.Impl;
+
+import org.springframework.stereotype.Service;
+import top.fjy8018.shiro.dataobject.User;
+import top.fjy8018.shiro.mapper.UserMapper;
+import top.fjy8018.shiro.service.UserService;
+
+import javax.annotation.Resource;
+
+/**
+ * @author F嘉阳
+ * @date 2018/7/5 21:29
+ */
+@Service
+public class UserServiceImpl implements UserService {
+
+ @Resource
+ private UserMapper userMapper;
+
+ @Override
+ public User findByUsername(String username) {
+ return userMapper.findByUsername(username);
+ }
+}
diff --git a/src/main/java/top/fjy8018/shiro/service/UserService.java b/src/main/java/top/fjy8018/shiro/service/UserService.java
new file mode 100644
index 0000000..ca2c7c8
--- /dev/null
+++ b/src/main/java/top/fjy8018/shiro/service/UserService.java
@@ -0,0 +1,12 @@
+package top.fjy8018.shiro.service;
+
+import top.fjy8018.shiro.dataobject.User;
+
+/**
+ * @author F嘉阳
+ * @date 2018/7/5 21:27
+ */
+public interface UserService {
+
+ User findByUsername(String username);
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
deleted file mode 100644
index e69de29..0000000
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..34ce7e4
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,7 @@
+spring:
+ datasource:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driver-class-name: com.mysql.jdbc.Driver
+ url: jdbc:mysql://localhost:3306/db_imis2?useUnicode=true&characterEncoding=utf-8&useSSL=true
+ username: trs
+ password: shiro
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
new file mode 100644
index 0000000..e3ea228
--- /dev/null
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file