先上一張圖,以下圖1所示,SecurityContext只有倆個方法,即getAuthentication()和setAuthentication(),以下:.net
圖1 SecurityContext的類圖blog
圖2 SecurityContextHolderget
而SecurityContextHolder則,保存的是SecurityContext,最常使用的就是SecurityContextHolder的getContext()方法。博客
SecurityContextHolder、SecurityContextHolderStrategy、SecurityContext緊密聯繫,咱們雖然調用的是SecurityContextHolder.getContxt(),但它卻委託給了SecurityContextHolderStrategy,SecurityContext是保存在SecurityContextHolderStrategy中的。類圖以下圖3所示,此圖來自於《Pro Spring Security》的Chapter3,建議讀者閱讀原文:it
圖3 SecurityContextHolder、SecurityContextHolderStrategy、SecurityContext的類圖io
SecurityContextHolderStrategy,能夠看個人這篇博客。方法
SecurityContext的時序圖以下圖4:im
圖4 SecurityContext的時序圖d3