springboot2.0框架下使用Shiro
介绍
Shiro是Apache旗下的开源项目,是一个简单易用的安全框架,提供包括认证、授权、加密、会话管理等诸多功能。Shiro使用了比较简单易懂易于使用的授权方式。Shiro属于轻量级框架,配置简单,应用广泛。在很多优秀的开源项目之中都有使用。
搭建springboot,网页部分
创建项目
搭建springboot开发环境
打开idea,点击文件(file)–>新建(new)–>新建文件(Project)
之后就会进入idea的新建项目之中,这里点击这个树叶加一个开关按钮的这个标志,之后点击下一步就可以了
之后这个就是,真正的配置界面,填好信息,就可以点击下一步,这里面比较重要的是这个javaVersion这里,默认是11版本。需要用户自己根据实际情况选择版本
在依赖选择这里,只选Web里面的spring web选项就可以了。然后点击下一步。
这里一般只看上面就可以了,项目名和项目位置最后面的名字可以不一致,不影响程序的运行
点击完成,再等maven项目下载所需的依赖就可以了。依赖下载完成,项目结构如下。(target在项目运行时,会生成)
添加依赖项
打开pom.xml文件在标签内添加依依赖
org.apache.shiro.shiro-all是本文中需要使用的的依赖
com.alibaba.fastjson是一个json格式文件处理工具,可能会用到
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.74</version>
</dependency>
打开idea右侧的maven的,点击如图所示刷新按钮,下载依赖包
搭建网页前端内容
用几个前端网页,对接后端数据,方便调试。
第一个是首页面(需要登录才能进入)
第二个是用户的登录页面
第三个是提示用户没有授权的页面,他会自动跳转到首页面或者登录页面。
首先是第一个页面,简单的使用html网页写一个大大的首页,并对其简单的美化一下,非常清楚
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body style="margin: 0;padding: 0;border-style: none">
<h1 style="margin:0;padding: 0;text-align: center;background-color: #00ced1;color: #9400d3;font-size: 150px;text-shadow: 5px 5px 2px #6000a3;">
首页主体
</h1>
</body>
</html>
然后是第二个页面,登录页面,使用form表单,action内容千万不要使用域名(ip)+端口之后是路径这种方式,则会导致每次提交表单,都会导致session不一致,直接写路径就好。还是死一样,简单的美化一下就好
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>系统登录</title>
<style>
input[type="text"], input[type="password"] {
margin: 0 2px;
height: 35px;
width: 100%;
}
input[type="submit"], input[type="button"] {
height: 35px;
width: 80px;
}
td {
font-size: 20px;
text-align: right;
}
tr{
}
table {
padding: 0 20px 0 0 ;
width: 30%;
border-style: solid;
border-width: 1px;
}
</style>
</head>
<body>
<center>
<form action="/user/login" method="get" style="margin-top: 10%;" target="_self">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="没用的按钮"style="margin-left:30%;