国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

這篇具有很好參考價值的文章主要介紹了一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

嗨,大家好,我是閃石星曜CyberSecurity創(chuàng)始人Power7089。

歡迎大家搜索我的微信公眾號:閃石星曜CyberSecurity

本文是【煉石計劃@Java代碼審計】內(nèi)部圈子原創(chuàng)課程,現(xiàn)分享給大家學(xué)習(xí)。

如需轉(zhuǎn)載,請詳細(xì)注明來源。
歡迎大家搜索并添加我的好友【Power_7089】,備注CSDN,邀請你進(jìn)入安全交流群。

配套練習(xí)環(huán)境獲?。?/p>

百度云鏈接:
鏈接:https://pan.baidu.com/s/11rDre4Q32wqn7gMRyEmIyw 
提取碼:4nee

123云盤(不限速不用登錄):
https://www.123pan.com/s/FWzDVv-JxCud

本系統(tǒng)是對https://github.com/witmy/my-springsecurity-plus進(jìn)行了小小的改動,也是為了讓大家通個一個簡單的系統(tǒng)入門Java代碼審計。

如果有寫的不詳細(xì)的地方,歡迎一起討論探索。

一、前置知識

A、涉及相關(guān)技術(shù)簡介
A1、Maven簡介

Maven 是一個項目管理工具,它包含了一個項目對象模型(Project Object Model),反映在配置中,就是一個 pom.xml 文件。是一組標(biāo)準(zhǔn)集合,一個項目的生命周期、一個依賴管理系統(tǒng),另外還包括定義在項目生命周期階段的插件(plugin)以及目標(biāo)(goal)。

當(dāng)我們使用 Maven 的使用,通過一個自定義的項目對象模型,pom.xml 來詳細(xì)描述我們自己的項目。

簡單來說,我們開發(fā)一個JavaWeb項目是需要加載很多依賴的,使用Maven可以便于管理這些依賴。

  • pom.xml

POM是項目對象模型(Project Object Model)的簡稱,它是Maven項目中的文件,使用XML表示,名稱叫做pom.xml。該文件用于管理:源代碼、配置文件、開發(fā)者的信息和角色、問題追蹤系統(tǒng)、組織信息、項目授權(quán)、項目的url、項目的依賴關(guān)系等等。Maven項目中必須包含pom.xml文件。

需要導(dǎo)入的依賴應(yīng)該在pom.xml中進(jìn)行配置與填寫。比如導(dǎo)入某些依賴,如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

project- project 是 pom.xml 中描述符的根。

modelVersion - modelVersion 指定 pom.xml 符合哪個版本的描述符。maven 2 和 3 只能為 4.0.0。

parent - maven 支持繼承功能。子 POM 可以使用 parent 指定父 POM ,然后繼承其配置。

dependencies - 在dependencise中進(jìn)行依賴配置

groupId - 團(tuán)體、組織的標(biāo)識符。團(tuán)體標(biāo)識的約定是,它以創(chuàng)建這個項目的組織名稱的逆向域名(reverse domain name)開頭。一般對應(yīng)著 java 的包結(jié)構(gòu)。

artifactId - 單獨項目的唯一標(biāo)識符。比如我們的 tomcat、commons 等。不要在 artifactId 中包含點號(.)。

version - 版本信息。

  • 使用IDEA創(chuàng)建Maven項目

1、打開IDEA,點擊Create New Porject,選擇Maven,如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

2、默認(rèn)即可(在真實需求中,可以根據(jù)自己的項目,選擇不同模板),點擊Next,然后點擊Finish。一個最基本的Maven項目結(jié)構(gòu)如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

配置源加速,自行百度就可以了。

A2、SpringBoot簡介

SpringBoot是一款基于JAVA的開源框架。目的是為了簡化Spring應(yīng)用搭建和開發(fā)流程。是目前比較流行,大中小型企業(yè)常用的框架。正因為極大簡化了開發(fā)流程,才收到絕大開發(fā)人員的喜愛。SpringBoot核心原理是自動裝配(自動配置),在這之前,開發(fā)一個JavaWeb,Spring等項目要進(jìn)行很多配置,使用了SpringBoot就不用在過多考慮這些方面。并且在SpringBoot中還內(nèi)置了Tomcat。

  • SpringBoot之HelloWorld

通過經(jīng)典HelloWorld程序,來看看Springboot項目搭建多么簡便。

1、打開IDEA,選擇Create New Project,選擇Spring Initializer,右側(cè)勾選Default,如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

2、點擊Next,Srping Initializr Project Settings配置內(nèi)容默認(rèn)就好,我們不做實際項目開發(fā),如下圖所示:
一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

3、點擊Next,進(jìn)入依賴項選擇頁面,我們選擇Web -> Spring Web這一個即可,如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

4、點擊Next,填寫項目名稱和存放地址。練習(xí)項目,默認(rèn)就可以,點擊Finish,完成創(chuàng)建。

5、Maven自動加載完所需依賴后,整體項目結(jié)構(gòu)如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

@SpringBootApplication注解表示這個類為SpringBoot的主配置類,SpringBoot項目應(yīng)運行這個類下面的main方法來啟動SpringBoot應(yīng)用。

6、創(chuàng)建HelloController,創(chuàng)建一個controller包,下面創(chuàng)建一個HelloController,在該controller中編寫代碼,如下圖所示:

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

7、點擊右上方運行,打開瀏覽器輸入http://127.0.0.1:8080/hello,即可看到helloworld,如下圖所示:
一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

@Controller注解:標(biāo)注該類為controller類,可以處理http請求。@Controller一般要配合模版來使用。現(xiàn)在項目大多是前后端分離,后端處理請求,然后返回JSON格式數(shù)據(jù)即可,這樣也就不需要模板了。

@ResponseBody注解:將該注解寫在類的外面,表示這個類所有方法的返回的數(shù)據(jù)直接給瀏覽器。 @RestController 相當(dāng)于 @ResponseBody 加上 @Controller

@RequestMapping注解:配置URL映射,可以作用于某個Controller類上,也可以作用于某Controller類下的具體方法中,說白了就是URL中請求路徑會直接映射到具體方法中執(zhí)行代碼邏輯。

@PathVariable注解:接受請求URL路徑中占位符的值,示例代碼如下圖所示:

@Controller
@ResponseBody
@RequestMapping("/hello")
public class HelloController {
    @RequestMapping("/whoami/{name}/{sex}")
    public String  hello(@PathVariable("name") String name, @PathVariable("sex") String sex){
        return "Hello" + name + sex;
    }
}

@RequestParam注解:將請求參數(shù)綁定到你控制器的方法參數(shù)上(是springmvc中接收普通參數(shù)的注解),常用于POST請求處理表單。

A3、SpringSecurity簡介

Spring 是一個非常流行和成功的java應(yīng)用開發(fā)框架。 Spring Security 基于Spring 框架,提供了一套web應(yīng)用安全性的完整解決方案。

一般來說,Web 應(yīng)用的安全性包括兩部分:

1. 用戶認(rèn)證(Authentication)

用戶認(rèn)證指的是驗證某個用戶是否為系統(tǒng)中的合法主體,也就是說用戶能否訪問該系統(tǒng)。用戶認(rèn)證一般要求用戶提供用戶名和密碼。系統(tǒng)通過校驗用戶名和密碼來完成認(rèn)證過程。

2. 用戶授權(quán)(Authorization)

用戶授權(quán)指的是驗證某個用戶是否有權(quán)限執(zhí)行某個操作。在一個系統(tǒng)中,不同用戶所具有的權(quán)限是不同的。比如對一個文件來說,有的用戶只能進(jìn)行讀取,而有的用戶可以進(jìn)行修改。

一般來說,系統(tǒng)會為不同的用戶分配不同的角色,而每個角色則對應(yīng)一系列的權(quán)限。

對于上面提到的兩種應(yīng)用情景,Spring Security 框架都有很好的支持。

在用戶認(rèn)證方面,Spring Security 框架支持主流的認(rèn)證方式,包括 HTTP 基本認(rèn)證、HTTP 表單驗證、HTTP 摘要認(rèn)證、OpenID 和 LDAP 等。

在用戶授權(quán)方面,Spring Security 提供了基于角色的訪問控制和訪問控制列表(Access Control List,ACL),可以對應(yīng)用中的領(lǐng)域?qū)ο筮M(jìn)行細(xì)粒度的控制。

A4、Mybatis簡介

MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲過程以及高級映射。MyBatis免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。

MyBatis可以通過簡單的 XML 或注解來配置和映射原始類型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 對象)為數(shù)據(jù)庫中的記錄。

它內(nèi)部封裝了jdbc,使開發(fā)者只需要關(guān)注sql語句本身,而不需要花費精力去處理加載驅(qū)動、創(chuàng)建連接、創(chuàng)建statement等繁雜的過程。

官網(wǎng):

https://mybatis.org/mybatis-3/zh/index.html

配置文件常存放在src/main/resources/mapper中,配置文件命名為xxxxMapper.xml

Mybatis拼接sql有下面兩種方式:

#{}告訴 MyBatis 創(chuàng)建一個預(yù)編譯語句(PreparedStatement)參數(shù),在 JDBC 中,這樣的一個參數(shù)在 SQL 中會由一個“?”來標(biāo)識,并被傳遞到一個新的預(yù)處理語句中。

${} 僅僅是純粹的 string 替換,在動態(tài) SQL 解析階段將會進(jìn)行變量替換,類似于直接替換字符串,會導(dǎo)致SQL注入產(chǎn)生。like+#{ }

A5、Swagger簡介

Swagger 是一款RESTful接口的文檔在線自動生成加功能測試的軟件。目的是為了減少與其他團(tuán)隊的溝通成本,因此會使用Swagger構(gòu)建RESTful API文檔來描述所有的接口信息。

一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。

官方網(wǎng)站:

https://swagger.io/

常見Swagger敏感信息泄露的路徑:

/swagger/
/api/swagger/
/swagger/ui/
/api/swagger/ui/
/swagger-ui.html/
/api/swagger-ui.html/
/user/swagger-ui.html/
/swagger/ui/
/api/swagger/ui/
/libs/swaggerui/
/api/swaggerui/
/swagger-resources/configuration/ui/
/swagger-resources/configuration/security/
......

Swagger組件特征固定title:Swagger UI

A6、Thymeleaf簡介

官方學(xué)習(xí)文檔:

https://www.thymeleaf.org/
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html

Thymeleaf是一個流行的模板引擎,該模板引擎采用Java語言開發(fā)。模板引擎(這里特指用于Web開發(fā)的模板引擎)是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)(內(nèi)容)分離而產(chǎn)生的,它可以生成特定格式的文檔,用于網(wǎng)站的模板引擎就會生成一個標(biāo)準(zhǔn)的html文檔。從字面上理解模板引擎,最重要的就是模板二字,這個意思就是做好一個模板后套入對應(yīng)位置的數(shù)據(jù),最終以html的格式展示出來,這就是模板引擎的作用。

例子:

<table>
  <thead>
    <tr>
      <th th:text="#{msgs.headers.name}">Name</th>
      <th th:text="#{msgs.headers.price}">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="prod : ${allProducts}">
      <td th:text="${prod.name}">Oranges</td>
      <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
    </tr>
  </tbody>
</table>

拓展學(xué)習(xí),大致了解每個標(biāo)簽作用:

https://www.w3xue.com/exp/article/20199/54847.html
A7、SpringBoot Actuator簡介

Actuator主要用于公開有關(guān)正在運行的應(yīng)用程序的運行信息 - 運行狀況,指標(biāo),信息,轉(zhuǎn)儲,env等等。它使用HTTP端點或JMX bean來使我們能夠與它進(jìn)行交互。

一些常見的執(zhí)行端點:文章來源地址http://www.zghlxwxcb.cn/news/detail-505350.html

/beans:此端點返回應(yīng)用程序中配置的所有bean的列表。
/env:提供有關(guān)Spring Environment屬性的信息。
/health:顯示應(yīng)用程序運行狀況
/info:顯示應(yīng)用程序信息,我們可以在Spring環(huán)境屬性中配置它。
/mappings:顯示所有 @RequestMapping 路徑的列表 。
/shutdown:允許我們正常關(guān)閉應(yīng)用程序。
/threaddump:

到了這里,關(guān)于一個基于SpringBoot開發(fā)的RBAC系統(tǒng),非常適合新手入門JavaWeb代碼審計實戰(zhàn)的系統(tǒng),長文警告,要好好學(xué)習(xí)。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 很合適新手入門使用的Python游戲開發(fā)包pygame實例教程-01[開發(fā)環(huán)境配置與第一個界面]

    很合適新手入門使用的Python游戲開發(fā)包pygame實例教程-01[開發(fā)環(huán)境配置與第一個界面]

    我們假定你已經(jīng)安裝好了我們開發(fā)python程序的sublime text,如果不知道怎么安裝的可以參照我前面的博文。這里只需要解決的是配置好Pygame的問題。本篇博文主要解決開發(fā)環(huán)境配置以及第一個游戲界面的顯示問題。 文章原出處: https://blog.csdn.net/haigear/article/details/130173836 沒有

    2024年01月25日
    瀏覽(35)
  • Java Scanner 類,超詳細(xì)整理,適合新手入門

    目錄 一、什么是 Java Scanner 類? 二、引用數(shù)據(jù)類型 1、引用數(shù)據(jù)類型的定義 三、Scanner 類有哪些常用方法? hasNext()用法 四、next() 與 nextLine() 區(qū)別 next(): nextLine(): 五、使用 next 方法 五、使用 nextLine方法 Java Scanner 類是 Java 中一個用于讀取用戶輸入的類,它可以從標(biāo)準(zhǔn)輸入、

    2024年02月06日
    瀏覽(93)
  • Java Character 類,超詳細(xì)整理,適合新手入門

    目錄 一、什么是Java Character 類? 二、Character類有哪些常用的靜態(tài)方法? 1、將一個字符分別轉(zhuǎn)換為大寫字母和小寫字母 2、如何判斷一個字符是否是數(shù)字? 3、如何將一個字符轉(zhuǎn)換為數(shù)字? 4、如何將一個字符串轉(zhuǎn)換為字符數(shù)組? 5、如何判斷一個字符是否是字母? Java中的C

    2024年02月02日
    瀏覽(97)
  • 開源了一套基于springboot+vue+uniapp的商城,包含分類、sku、商戶管理、分銷、會員、適合企業(yè)或個人二次開發(fā)

    開源了一套基于springboot+vue+uniapp的商城,包含分類、sku、商戶管理、分銷、會員、適合企業(yè)或個人二次開發(fā)

    開源了一套基于若依框架,SringBoot2+MybatisPlus+SpringSecurity+jwt+redis+Vue+Uniapp的前后端分離的商城系統(tǒng), 包含分類、sku、商戶管理、分銷、會員、適合企業(yè)或個人二次開發(fā)。 前端采用Vue、Element UI(ant design 正在開發(fā)中)。 后端采用Spring Boot、Spring Security、Redis Jwt。 權(quán)限認(rèn)證使用

    2024年02月12日
    瀏覽(32)
  • 注冊Github賬號詳細(xì)教程【超詳細(xì)篇--適合新手入門】

    目錄 一、GitHub的簡介 二、如何注冊自己的GitHub賬戶 1、進(jìn)入github的官網(wǎng) 2、點擊右上角注冊按鈕sign up,來到注冊頁面 ?4、點擊Continue,繼續(xù)在光標(biāo)處創(chuàng)建密碼,繼續(xù)創(chuàng)建用戶名

    2024年02月10日
    瀏覽(87)
  • 一款基于 SpringCloud 開發(fā)的AI聊天機(jī)器人系統(tǒng),已對接GPT-4.0,非常強(qiáng)大

    一款基于 SpringCloud 開發(fā)的AI聊天機(jī)器人系統(tǒng),已對接GPT-4.0,非常強(qiáng)大

    一個基于SpringCloud的Chatgpt機(jī)器人,已對接GPT-3.5、GPT-4.0、百度文心一言、stable diffusion AI繪圖、Midjourney繪圖。用戶可以在界面上與聊天機(jī)器人進(jìn)行對話,聊天機(jī)器人會根據(jù)用戶的輸入自動生成回復(fù)。同時也支持畫圖,用戶輸入文本,便可以自動制作文生文生圖。 強(qiáng)大的AI大腦:

    2024年04月15日
    瀏覽(17)
  • 推薦幾個適合新手入門學(xué)習(xí)的SQL網(wǎng)站,在線就能練習(xí)

    推薦幾個適合新手入門學(xué)習(xí)的SQL網(wǎng)站,在線就能練習(xí)

    這里整理推薦幾個我自己學(xué)習(xí)時用過的在線學(xué)習(xí)網(wǎng)站,對新手非常友好,幫助初學(xué)者快速入門SQL,在交互式的環(huán)境里學(xué)習(xí),既不用安裝也不用導(dǎo)入數(shù)據(jù),在線就能思考和練習(xí)。 1.自學(xué)SQL網(wǎng) 適合小白學(xué)習(xí),這里由淺及深的介紹了SQL的知識,每一個章節(jié)是一組相關(guān)的SQL知識點且配備著

    2024年02月15日
    瀏覽(44)
  • 最強(qiáng)的單點登錄認(rèn)證系統(tǒng),基于RBAC統(tǒng)一權(quán)限控制,實現(xiàn)用戶生命周期管理,開源、安全

    最強(qiáng)的單點登錄認(rèn)證系統(tǒng),基于RBAC統(tǒng)一權(quán)限控制,實現(xiàn)用戶生命周期管理,開源、安全

    MaxKey 單點登錄認(rèn)證系統(tǒng),諧音馬克思的鑰匙寓意是最大鑰匙,是 業(yè)界領(lǐng)先的IAM-IDaas身份管理和認(rèn)證產(chǎn)品 ,支持OAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIM等標(biāo)準(zhǔn)協(xié)議,提供 安全、標(biāo)準(zhǔn)和開放 的用戶身份管理(IDM)、身份認(rèn)證(AM)、單點登錄(SSO)、RBAC權(quán)限管理和資源管理等。 MaxKey注

    2024年02月03日
    瀏覽(20)
  • UE4/5AI制作基礎(chǔ)AI(適合新手入門,運用黑板,行為樹,ai控制器,角色類,任務(wù))

    UE4/5AI制作基礎(chǔ)AI(適合新手入門,運用黑板,行為樹,ai控制器,角色類,任務(wù))

    目錄 制作流程 第一步:創(chuàng)建資產(chǎn) 然后創(chuàng)建一個AIController 之后創(chuàng)建一個黑板和行為樹: ?第二步:制作 黑板 行為樹 任務(wù) 運行行為樹 ?結(jié)果 第一步直接復(fù)制你的人物藍(lán)圖,做一個npc: 然后創(chuàng)建一個AIController 之后創(chuàng)建一個 黑板和行為樹 : ? 首先打開你的BP_NPC的pawn類,然后

    2024年02月16日
    瀏覽(312)
  • 我用 Laf 開發(fā)了一個非常好用的密碼管理工具

    我用 Laf 開發(fā)了一個非常好用的密碼管理工具

    【KeePass 密碼管理】是一款簡單、安全簡潔的賬號密碼管理工具,服務(wù)端使用 Laf 云開發(fā),支持指紋驗證、FaceID,N 重安全保障,可以隨時隨地記錄我的賬號和密碼。 寫這個小程序之前,在國內(nèi)市場找了很多密碼存儲類的 App 體驗不是太好用。之前還遇到數(shù)據(jù)全部丟失的 App..

    2024年02月02日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包