在Jersey文檔中,Example 16.2顯示了將SecurityContext注入Jersey資源單例的示例。爲什麼將一個SecurityContext注入Jersey Singleton線程安全?
肯定的文檔是正確的,並給予確實的例子是線程安全的。我懷疑SecurityContext的注入只發生一次,並且當調用getUserPrincipal()
時,它可能從連接到線程本身的某個結構(也許是ThreadLocal對象?)中獲取用戶數據。這是我能看到當有大量線程參與競爭時向最終用戶提供正確用戶信息的唯一途徑。
任何人都可以證實這種行爲,或者解釋Jersey例子的線程安全嗎?