最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的@PreAuthorize注解使用詳解

 更新時(shí)間:2023年10月07日 09:09:45   作者:Myovlmx  
這篇文章主要介紹了Java中的@PreAuthorize注解使用詳解,@PreAuthorize注解會(huì)在方法執(zhí)行前進(jìn)行權(quán)限驗(yàn)證,支持Spring EL表達(dá)式,它是基于方法注解的權(quán)限解決方案,需要的朋友可以參考下

@PreAuthorize注解使用

@PreAuthorize注解會(huì)在方法執(zhí)行前進(jìn)行權(quán)限驗(yàn)證,支持Spring EL表達(dá)式,它是基于方法注解的權(quán)限解決方案。只有當(dāng)@EnableGlobalMethodSecurity(prePostEnabled=true)的時(shí)候,@PreAuthorize才可以使用,@EnableGlobalMethodSecurity注解在SPRING安全中心進(jìn)行設(shè)置,如下:  

/**
 * SPRING安全中心
 * @author ROCKY
 */
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
}

注解如何使用?

@Operation(summary = "通過(guò)id查詢(xún)檔案報(bào)表", description = "通過(guò)id查詢(xún)檔案報(bào)表")
    @GetMapping("/{reportId}" )
    @PreAuthorize("@pms.hasPermission('archsys_sysarchreport_view')" )
    public R getById(@PathVariable("reportId" ) Long reportId) {
        return R.ok(sysArchReportService.getById(reportId));
    }

自定義權(quán)限實(shí)現(xiàn) 

@PreAuthorize("@pms.hasPermission('archsys_sysarchreport_view')" )

  • pms是一個(gè)注冊(cè)在 Spring容器中的Bean,對(duì)應(yīng)的類(lèi)是cn.hadoopx.framework.web.service.PermissionService;
  • hasPermission是PermissionService類(lèi)中定義的方法;
  • 當(dāng)Spring EL 表達(dá)式返回TRUE,則權(quán)限校驗(yàn)通過(guò);
  • PermissionService.java的定義如下:
public class PermissionService {
	/**
	 * 判斷接口是否有任意xxx,xxx權(quán)限
	 * @param permissions 權(quán)限
	 * @return {boolean}
	 */
	public boolean hasPermission(String... permissions) {
		if (ArrayUtil.isEmpty(permissions)) {
			return false;
		}
		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
		if (authentication == null) {
			return false;
		}
		Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
		return authorities.stream().map(GrantedAuthority::getAuthority).filter(StringUtils::hasText)
				.anyMatch(x -> PatternMatchUtils.simpleMatch(permissions, x));
	}
}
@RequiredArgsConstructor
@EnableConfigurationProperties(PermitAllUrlProperties.class)
public class PigResourceServerAutoConfiguration {
	/**
	 * 鑒權(quán)具體的實(shí)現(xiàn)邏輯
	 * @return (#pms.xxx)
	 */
	@Bean("pms")
	public PermissionService permissionService() {
		return new PermissionService();
	}
}

到此這篇關(guān)于Java中的@PreAuthorize注解使用詳解的文章就介紹到這了,更多相關(guān)@PreAuthorize注解使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java調(diào)用HTTPS接口的兩種方式及完整代碼

    Java調(diào)用HTTPS接口的兩種方式及完整代碼

    HTTPS是以安全為目標(biāo)的HTTP通道,在HTTP的基礎(chǔ)上通過(guò)傳輸加密和身份認(rèn)證保證了傳輸過(guò)程的安全性 ,HTTPS在HTTP的基礎(chǔ)下加SSL,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL,本文給大家介紹了Java調(diào)用https接口的兩種方式及完整代碼,需要的朋友可以參考下
    2025-05-05
  • springboot使用war包部署到外部tomcat過(guò)程解析

    springboot使用war包部署到外部tomcat過(guò)程解析

    這篇文章主要介紹了springboot使用war包部署到外部tomcat過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Java實(shí)現(xiàn)瀏覽器端大文件分片上傳

    Java實(shí)現(xiàn)瀏覽器端大文件分片上傳

    本文主要介紹了Java實(shí)現(xiàn)瀏覽器端大文件分片上傳,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java數(shù)組擴(kuò)容實(shí)現(xiàn)方法解析

    Java數(shù)組擴(kuò)容實(shí)現(xiàn)方法解析

    這篇文章主要介紹了Java數(shù)組擴(kuò)容實(shí)現(xiàn)方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringMVC實(shí)現(xiàn)防止重復(fù)提交表單的方法詳解

    SpringMVC實(shí)現(xiàn)防止重復(fù)提交表單的方法詳解

    在Web開(kāi)發(fā)中,防止表單重復(fù)提交是一個(gè)常見(jiàn)的需求,本文將介紹幾種在SpringMVC框架中防止表單重復(fù)提交的有效方法,有需要的小伙伴可以了解下
    2025-06-06
  • 記錄一次connection reset 錯(cuò)誤的解決全過(guò)程

    記錄一次connection reset 錯(cuò)誤的解決全過(guò)程

    這篇文章主要介紹了記錄一次connection reset 錯(cuò)誤的解決全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Spring batch批處理框架

    Spring batch批處理框架

    本文主要介紹了Spring batch批處理框架的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-04-04
  • JavaWeb之監(jiān)聽(tīng)器案例講解

    JavaWeb之監(jiān)聽(tīng)器案例講解

    這篇文章主要介紹了JavaWeb之監(jiān)聽(tīng)器案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 深入了解Springboot核心知識(shí)點(diǎn)之?dāng)?shù)據(jù)訪(fǎng)問(wèn)配置

    深入了解Springboot核心知識(shí)點(diǎn)之?dāng)?shù)據(jù)訪(fǎng)問(wèn)配置

    這篇文章主要為大家介紹了Springboot核心知識(shí)點(diǎn)中的數(shù)據(jù)訪(fǎng)問(wèn)配置,文中的示例代碼講解詳細(xì),對(duì)我們了解SpringBoot有一定幫助,快跟隨小編一起學(xué)習(xí)一下吧
    2021-12-12
  • Java批量導(dǎo)出word壓縮后的zip文件案例

    Java批量導(dǎo)出word壓縮后的zip文件案例

    這篇文章主要介紹了Java批量導(dǎo)出word壓縮后的zip文件案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10

最新評(píng)論

芦山县| 甘孜| 珠海市| 昌宁县| 荣昌县| 鹤峰县| 喀喇| 宜春市| 乌鲁木齐县| 肇州县| 南木林县| 沧州市| 上思县| 县级市| 洛浦县| 河西区| 屏南县| 万年县| 平江县| 高淳县| 新和县| 陆丰市| 延津县| 定远县| 林甸县| 昌宁县| 兰考县| 宿松县| 常熟市| 曲靖市| 临邑县| 轮台县| 黄山市| 高要市| 尉犁县| 连江县| 广州市| 玉门市| 文登市| 英超| 德昌县|