之前的種種操作都是為了不要讓某些沒有權限的用戶看到某個頁面,接下來要做的是這些用戶能看到頁面,但是看不到頁面的全部。即,頁面中的某些部分根據(jù)用戶有無權限決定是否渲染
-
JSP的視圖保護方案
(1) 聲明
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %>
(2) 標簽
<security:authentication> 用戶渲染當前用戶認證對象的詳細信息
<security:authorize> 如果用戶被授予了特定權限或spEL表達式計算結(jié)果為true,則渲染其中的內(nèi)容
(3) 訪問認證信息的細節(jié)
需求:你好,xxx同學!
示例
Hello there...<security:authentication property="principal.username"/>其中,property屬性用來表示用戶認證對象的一個屬性
(4) 條件性的渲染內(nèi)容
需求:根據(jù)用戶權限決定是否渲染內(nèi)容
示例
<security:authorize access="hasRole('ROLE_USER')"> <div> fuck! </div> </security:authorize>其中,access屬性被賦值為一個SpEL表達式,表達式的值為真的時候則渲染;而且可以使用and連接多個條件
-
Thymeleaf的視圖保護方案
(1) 注冊"方言",之后才能使用
示例 WebConfig.java
@Configuration @EnableWebMvc @ComponentScan("spittr.web") public class WebConfig extends WebMvcConfigurerAdapter { ... @Bean public SpringTemplateEngine templateEngine(TemplateResolver templateResolver) { SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver); templateEngine.addDialect(new SpringSecurityDialect()); return templateEngine; } ... }(2) 在html中聲明命名空間
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">(3) 訪問認證信息的細節(jié)
sec:authentication 等價于JSP的 <security:authentication>示例
Hello there...<span sec:authentication="name">user-name</span>(4) 條件性的渲染內(nèi)容
sec:authorize 等價于JSP的 <security:authorize access="xxx">
示例
<div sec:authorize="isAuthenticated()">
chapter09_保護Web應用_2_保護視圖
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內(nèi)容
- 前言 本章內(nèi)容: ??Spring Security介紹 ??使用Servlet規(guī)范中的Filter保護Web應用...
- 參考資料: 書籍:Spring實戰(zhàn)(第4版) 第9章和第14章 Spring Security 參考手冊 初識 S...
- 4. Web集成 4.1. Web提供的全局變量 Web集成模塊向模板提供web標準的變量,做如下說明 reque...
- 前言 這里筑夢師,是一名正在努力學習的iOS開發(fā)工程師,目前致力于全棧方向的學習,希望可以和大家一起交流技術,共同...