我有一個彈簧安全設置的春天應用程序。我已經使用@PreAuthorize(...)註釋了我的服務方法。因此,網絡上的每個人都需要一些特定的權限來訪問這些方法,這很好。Spring安全@PreAuthorize與應用程序本身作爲用戶
但是現在我有了一個新的用例。有一個@Scheduled方法運行來執行一些檢查和發送消息。目前只有擁有ROLE_USER的人才可以發送消息。但是現在應用程序本身也必須發送這些消息。
我應該如何管理有某種無形的用戶(=應用程序),它被記錄在所有的時間和有特定的權利?或者,「所有權利」也會很好,所以它只是忽略所有這些安全註釋。 或者我可能根本不需要「用戶」?
感謝您的幫助!
編輯:主要的2個問題是:
我應該爲應用程序創建一個真實的用戶?意思是:數據庫的用戶表中的條目?你是如何解決這個問題的?也許你只是使用管理員用戶(這是一個真人)的用戶帳戶?
如果我現在有這個「系統」的用戶。什麼是「使用」它的最佳方式?例如,我會使用@Autowired User systemUser來訪問這個用戶,無論我需要它。 (當然,在我用這個特定用戶創建一個bean的應用程序配置中有一些要點)。
EDIT2:一些更多的想法:
我想將來我想從應用程序的不同子系統發送消息。因此,使用管理員用戶是沒有選擇的,因爲我需要一些具有不同名稱的不同用戶。
這是隻是簡單有新條目,系統將爲該用戶X生成消息,並且該消息包含一些文本和指向這些新條目的鏈接。沒什麼特別的。 ......我只需要回答兩個問題(我會在一分鐘後將這些問題追加到問題中) –
我工作的企業使用ldap訪問的中央目錄。我們有一個系統用戶進入這個系統。我們從每個環境中的系統管理員提供給系統的屬性文件中選取憑證。屬性文件用於在需要時查找證書。我們不會緩存委託人,因爲在我們的案例中,每次調用之前都必須進行身份驗證。 –
將憑證硬編碼到您的應用中並不是一個好主意,在這裏他們可以被逆向設計。此外,憑證在每個環境中往往不同 - 開發,集成,qa,預產品和產品。 –