0
我甚至不知道這個問題的標題是否正確 - 如果不是,請原諒。我有這樣的問題:Java - 用戶對象訪問控制
我的web應用程序只能被登錄用戶訪問。每個用戶被表示爲保存在數據庫中的User
實體。
還有一些其他實體類:A
,B
,C
...也保存在數據庫中。類別A
,B
...的每個對象都可以由任何用戶創建。 但user1
不應該看到由user2
創建的對象。
問:
我怎麼能做出這樣的訪問控制?
我天真的想法:
我可以(在數據庫表的情況下,列)添加User
屬性爲每個實體類。在創建對象時,此屬性將採用當前用戶標識。到目前爲止,對我來說沒問題。但是,我必須將當前用戶添加到每個數據庫選擇。這在某些方面有問題。
例如,使用Spring JPA代替:
public interface MessageRepository extends JpaRepository<Message, Long> {
List<Message> findByReceiveDateBetween(Date from, Date to);
}
我必須使用:
public interface MessageRepository extends JpaRepository<Message, Long> {
List<Message> findByReceiveDateBetweenAndUser(Date from, Date to, User user);
}
我的應用程序是用Java編寫與春天。
這種訪問控制是如何實現的?
這聽起來像你已經知道如何做到這一點。爲什麼將當前用戶添加到每個數據庫選擇是一個問題?當然,這是一個額外的打字,但如果你想根據用戶進行選擇,你必須這樣做。 – forgivenson
這個操作是例行的(可重複的),所以我認爲有一些更好的方法不用手動向用戶添加'user'。此外,我聽說有關ACL的一些事情,所以我認爲也許有人可以提出比我的天真更好的解決方案。 – jsosnowski