2017-10-08 8 views
0

私はoAuth2とGoogleで安全に管理できるSpringブートAPIを持っています。 私はこれに似たものを持っています:Rest, Spring own OAuth2 server + OAuth2 providers like Facebook, Google, YahoooAuth2を使用したSpringブートAPIの保護|フィルタユーザー

すべてが期待通りに動作します。

私の質問は次のとおりです。 特定のユーザー(すべてのGoogleユーザーではない)へのアクセスを制限する方法を知るにはどうすればよいですか? これは私の認証部分のように聞こえる。私はこのすべての初心者でどこから始めたらいいのかわかりません。

ありがとうございました。

+0

だけ明確にするには、Googleのユーザーを除くすべての人へのアクセスを制限したいですか? – Dayna

+0

本当にありません。今私はすべてのGoogleユーザーがAPIにアクセス/使用できるようになりました。私が欲しいのは、プロフィールからの何かに基づいて特定のGoogleユーザーへのアクセスを制限することです(たとえば、姓の例を挙げましょう) – salviialex

答えて

0

私の知る限りでは、ユーザーの姓に基づいてAPIへのアクセスを制限したい場合は、私が行う可能性のあるサンプルシナリオを設定します。

例えば、私は/api/family?lastname=doeのようなエンドポイントを持つAPIを持っています。このAPIの目的は、この場合「doe」と同じ姓の人のリストを返すことです。 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 

} 
関連する問題