我正在執(zhí)行業(yè)務(wù)驗(yàn)證:當(dāng)前用戶(hù)是否有權(quán)訪問(wèn)數(shù)據(jù)庫(kù)中的特定數(shù)據(jù)集。為此,我需要登錄用戶(hù)的用戶(hù)名。下面的示例工作正常,在控制器/攔截器中成功進(jìn)行身份驗(yàn)證后,“userName”參數(shù)將在從控制器到服務(wù)層的所有調(diào)用中傳遞。@Service public class MyServiceImpl implements MyService { @Autowired private MyDAO myDAO; public String getData(String userName) { return myDAO.getData(userName); }}用戶(hù)信息從控制器傳遞到服務(wù),然后傳遞到我想避免的 DAO。我有自己的機(jī)制來(lái)處理身份驗(yàn)證和授權(quán)。我需要非常簡(jiǎn)單的解決方案,以便在每次調(diào)用 Service/DAO 層的某些上下文中包含這個(gè)額外的參數(shù)。注意:我需要一個(gè)簡(jiǎn)單的解決方案,并且不想使用 spring-security 等框架。
2 回答

慕的地10843
TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
希望您使用線程上下文,您可以輕松地在上下文中設(shè)置參數(shù)并在應(yīng)用程序內(nèi)的任何位置使用它。(很像會(huì)話變量)。
如果您已經(jīng)在使用 Spring 會(huì)話,那么您可以在會(huì)話中設(shè)置變量并使用它。

拉丁的傳說(shuō)
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
也許你可以考慮使用ThreadLocal。認(rèn)證后將用戶(hù)名設(shè)置為T(mén)hreadLocal,并獲取Service類(lèi)中的值。
添加回答
舉報(bào)
0/150
提交
取消