
[TOC]
## 一、需求分析

* login.html登錄頁面,登錄頁面訪問不受限制
* 在登錄頁面登錄之后,進(jìn)入index.html首頁(登錄驗(yàn)證Authentication)
* 首頁可以看到syslog、sysuer、biz1、biz2四個(gè)頁面選項(xiàng)
* 我們希望syslog(日志管理)和sysuser(用戶管理)只有admin管理員可以訪問(權(quán)限管理Authorization)
* biz1、biz2普通的操作普通用戶登錄即可訪問(權(quán)限管理Authorization)
**其中 login.html是html文件,其他文件是以.html為后綴的freemarker模板文件**
> 我們先將以上頁面準(zhǔn)備好,先不做任何訪問權(quán)限上的限制!以上需求我們將在后面章節(jié)實(shí)現(xiàn)
## 二、環(huán)境準(zhǔn)備
1. 起一個(gè)新的spring boot2.x 版本的web應(yīng)用
2. 集成lombok、mybatis、log4j等
3. 集成一個(gè)前端模板,我這里使用的是freemarker。你可以根據(jù)自己需要整合jsp、thymeleaf等都可以。
> 為了讓課程盡量的干一點(diǎn),因?yàn)檫@套課程主要是講security及web應(yīng)用安全,所以不會(huì)花時(shí)間在spring boot整合開源軟件,及增刪改查怎么寫!如果不知道怎么做。可以參考:http://www.imay365.com/hanxt/springboot2/content 網(wǎng)上也有很多的資料。
**如果你實(shí)在不愿意自己集成,下面的是我整合之后的結(jié)果,可以直接使用。該項(xiàng)目只用于項(xiàng)目初始化,不包含后面課程的源代碼。**
[https://gitee.com/hanxt/boot-security-starter](https://gitee.com/hanxt/boot-security-starter)

> 注意login.html頁面的存放位置和其他文件的存放位置不一樣。public文件夾里面的html文件可以對(duì)外公開訪問
login.html
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首頁</title>
</head>
<body>
<h1>字母哥業(yè)務(wù)系統(tǒng)登錄</h1>
<form action="/login" method="post">
<span>用戶名稱</span><input type="text" name="username" /> <br>
<span>用戶密碼</span><input type="password" name="password" /> <br>
<input type="submit" value="登陸">
</form>
</body>
</html>
```
index.html
```
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
<title>字母哥業(yè)務(wù)管理系統(tǒng)</title>
</head>
<body>
<h1>字母哥業(yè)務(wù)管理系統(tǒng)</h1>
<br>
<a href="/syslog">日志管理</a>
<br>
<a href="/sysuser">用戶管理</a>
<br>
<a href="/biz1">具體業(yè)務(wù)一</a>
<br>
<a href="/biz2">具體業(yè)務(wù)二</a>
</body>
</html>
```
BizpageController .java
```
@Controller
public class BizpageController {
// 登錄
@PostMapping("/login")
public String index(String username,String password) {
return "index"; //index.html
}
// 日志管理
@GetMapping("/syslog")
public String showOrder() {
return "syslog"; //syslog.html
}
// 用戶管理
@GetMapping("/sysuser")
public String addOrder() {
return "sysuser"; //sysuser.html
}
// 具體業(yè)務(wù)一
@GetMapping("/biz1")
public String updateOrder() {
return "biz1"; //biz1.html
}
// 具體業(yè)務(wù)二
@GetMapping("/biz2")
public String deleteOrder() {
return "biz2"; //biz2.html
}
}
```
syslog.html、sysuser.html、biz1.html、biz2.html內(nèi)容隨便寫點(diǎn),能夠方便做內(nèi)容上的彼此區(qū)分即可。
- 課程內(nèi)容介紹
- 源碼與技術(shù)交流
- 作者其他作品推薦
- vue深入淺出系列
- 手摸手教你學(xué)Spring Boot
- 實(shí)戰(zhàn)前后端分離RBAC權(quán)限管理系統(tǒng)
- 實(shí)戰(zhàn)SpringCloud微服務(wù)從青銅到王者
- 第一章 spring security基礎(chǔ)篇
- 1.1.spring-security簡介并與shiro對(duì)比
- 1.2.需求分析與基礎(chǔ)環(huán)境準(zhǔn)備
- 1.3.HttpBasic模式登錄認(rèn)證
- 1.4.PasswordEncoder介紹
- 1.5.formLogin模式登錄認(rèn)證
- 1.6.源碼解析登錄驗(yàn)證流程
- 1.7.自定義登錄驗(yàn)證結(jié)果處理
- 1.8.session會(huì)話的管理
- 1.9.同賬號(hào)多端登錄踢下線
- 第二章 認(rèn)證授權(quán)鑒權(quán)功能深入
- 2.1.1.RBAC權(quán)限管理模型
- 2.1.2.結(jié)合真實(shí)系統(tǒng)講解RBAC實(shí)現(xiàn)
- 2.2.動(dòng)態(tài)加載用戶角色權(quán)限數(shù)據(jù)
- 2.3.動(dòng)態(tài)加載資源鑒權(quán)規(guī)則
- 2.4.權(quán)限表達(dá)式使用方法總結(jié)
- 2.5.RememberMe記住我功能
- 2.6.退出登錄功能的實(shí)現(xiàn)
- 2.7.多次登錄失敗賬戶鎖定
- 2.8.多種圖片驗(yàn)證碼實(shí)現(xiàn)方案
- 2.9.基于session的圖片驗(yàn)證碼實(shí)現(xiàn)
- 2.10.短信驗(yàn)證碼登錄功能
- 第三章 集群單點(diǎn)登錄方案介紹
- 3.1.單點(diǎn)登錄與狀態(tài)共享方案
- 3.2.基于session共享登陸方案
- 3.3.CAS認(rèn)證服務(wù)器搭建
- 3.4.CAS動(dòng)態(tài)加載用戶密碼數(shù)據(jù)
- 3.5.CAS資源服務(wù)器搭建
- 第四章 前后端分離的應(yīng)用認(rèn)證
- 4.1.詳述JWT使用場景及結(jié)構(gòu)安全
- 4.2.Spring Security-JWT實(shí)現(xiàn)原理
- 4.3.編碼實(shí)現(xiàn)JWT認(rèn)證鑒權(quán)
- 4.4.解決跨域訪問的問題
- 4.5.CSRF跨站攻擊防護(hù)
- 4.6.JWT集群應(yīng)用方案
- 第五章 Spring-Security-OAuth2項(xiàng)目
- 5.1.OAuth2授權(quán)標(biāo)準(zhǔn)簡介
- 5.2.Spring與OAuth2發(fā)展路線圖
- 5.3.實(shí)現(xiàn)授權(quán)碼模式認(rèn)證服務(wù)器
- 5.4.實(shí)現(xiàn)其它三種模式認(rèn)證服務(wù)器
- 5.5.AccessToken令牌的刷新
- 5.6.編碼實(shí)現(xiàn)資源服務(wù)器
- 5.7.認(rèn)證資源服務(wù)器分離
- 5.8.認(rèn)證資源服務(wù)整合JWT
- 5.9.Client信息持久化存儲(chǔ)
- 第六章 SpringSocial社交登錄
- 6.1.SpringSocia源碼分析
- 6.2.QQ互聯(lián)注冊(cè)及應(yīng)用創(chuàng)建
- 6.3.實(shí)現(xiàn)QQ登錄功能
- 6.4.QQ登錄功能細(xì)節(jié)處理
- 6.5.QQ登錄用戶關(guān)系綁定
- 附錄一:抽取公共資源為獨(dú)立模塊
- 附錄二:OAuth-server數(shù)據(jù)庫表