2016-12-16 12 views
0

残りのAPIを作成しました:残りの安全な更新オブジェクトapi

現在のログオンユーザーのアドレスを返します。次に、ユーザーはいくつかのデータを編集し、POSTによって編集されたjsonを/ api/addressに送信することができます。しかし、ユーザーはまた、preapred jsonをUIを省略して残りの部分に送ることもできます。例えば

:AddressServiceに続い

{id:2, street: Madison, flatNumber: 14} 

public void updateUser(AddressDto address) { 
    repository.findOneById(address.getId()).ifPresent(a -> { 
    a.setFlatNumber(address.getFlatNumber()); 
    respository.update(a); 
    }); 
} 

しかし、ユーザは、異なるIDで調製JSONを送信することができます。そして彼に属していない住所を編集してください。どのようにそのような状況を防ぐには?

ユーザーが自分のデータのみを更新できるかどうかを確認します。エンティティがログに記録されたユーザーと関連しているかどうか毎回確認する必要がありますか?

答えて

0

updateUserメソッドの内部では、ユーザーに基づいてレコードをプルするコードを変更します。

ユーザーごとに1つのアドレスのみが必要な場合は、アドレスレコードのIDとしてuserを使用することを検討してください。

+0

あなたの答えをありがとう。事実上のアドレスエンティティは単純な例にすぎません。私のアプリケーションでは、より複雑なエンティティの関係があります。あなたが提案したアイデアは良いです。正直言って私はよりエレガントなソリューションがあることを望んだ。だから、より良いsolutonが表示されない場合は、私はこの答えを受け入れるでしょう。 – Kamil

関連する問題