2017-10-08 59 views
0

我有一個Spring引導API,我設法通過oAuth2和Google進行安全保護。 我有類似的東西:Rest, Spring own OAuth2 server + OAuth2 providers like Facebook, Google, Yahoo使用oAuth2 |確保Spring Boot API的安全過濾用戶

一切都按預期工作。

我的問題是以下幾點: 我怎麼知道限制訪問某些用戶(不是每個谷歌用戶)? 這聽起來像是我的授權部分。我不確定從哪裏開始,因爲我在這一切都是初學者。

感謝您的任何幫助或指針。

+0

只是爲了澄清,你想限制除了谷歌用戶的訪問給大家? – Dayna

+0

不是真的。現在我有每個谷歌用戶都可以訪問/使用API​​。我想要的是根據其個人資料中的某些內容來限制某些谷歌用戶的訪問權限(例如,假設他們的姓氏) – salviialex

回答

0

據我所知,如果你想基於用戶的姓氏限制對API的訪問(按照你的例子),我將設置一個我可能做的事情的樣例場景。

例如說我有一個端點如/api/family?lastname=doe這個API的目的的API是返回的人的名單有相同的姓氏在這種情況下,「母鹿」。如果參數中提供的姓氏等於當前授權用戶的姓氏,API將僅返回結果。

所以也許我不得不設置爲一個API如下:

@RequestMapping(value="/api/family", method = RequestMethod.GET) 
@ResponseBody 
public List<Member> findFamilyMembersByLastName(@RequestParam(value="lastname", required=true) String lastName){ 

     User authorizedUser = getCurrentUser(); // Set up a method that is able to get the current logged in user 
     if(!authorizedUser.getLastName().equals(lastName){ 
     // Throw some kind of exception here 
     } 
     // otherwise perform a query to find a list of Members with last name and return them 

} 
相關問題