2016-10-22 6 views
0

私はhttp://howtodoinjava.com/jersey/jersey-restful-client-api-authentication-example/|ジャージーレストフレームワーク - 承認 - いくつかの疑問

このページに残りのサービスのためのジャージフレームワークについて読んで、私は一つのことを理解していません。例えば は、我々は

@Path("/users") 
    public class JerseyService 
    { 
    @RolesAllowed("USER") 
    public String doLogin(@QueryParam("username") String uname, 
    @QueryParam("password") String result) 

持っているときには、役割のユーザーを持つユーザーは、すべてのユーザー(この方法で)変更することができることを意味しますか?データベースだけでなく、私はアンドロイドアプリを書いており、誰かが高度なRESTクライアントを使用している状況を想像することができます。彼はサービスにログオンし、適切な方法でクエリを修正し、データベースを強く混乱させます。例えば、いくつかのポイントを他のユーザーまたは類似のものに書き込む。この状況をどうやって止めることができますか?

答えて

1

ジャージー(および同様のスプリングセキュリティー)は、リソースタイプと役割で動作します。

ロール "USER"をリソース "Users"に対して操作できるようにすると、特定のユーザーがジャージーのみの他のユーザーの編集をブロックすることはできません。

SecurityContextを使用して現在のユーザーを取得し、ユーザーの資格情報が変更されているユーザーと異なる場合は危険な操作をブロックすることができます。

ここSecurityContextが上の良い例です:
https://simplapi.wordpress.com/2015/09/19/jersey-jax-rs-securitycontext-in-action/

+0

あなたのお返事ありがとうございます。それはかなり良いようです。 Androidプラットフォーム上のネイティブモバイルアプリケーションで使用するのは適切ですか? ;)私はoauth2について読んで、これらのソリューションの1つを使うことを考える。 – sebaaastian

+0

Jerseyサーバーと通信するAndroidクライアントを作成していることを確認してください。 –

+0

右。私はアプリケーションを計画し、適切な技術を選択します。これは私の最初の大きなアプリです。それで、要約すると、私は準備をして、すべてが決定されるわけではありません。当初はジャージーではなく春を考えました。 – sebaaastian

0

あなたは、関連する資格情報と一致するすべてのリクエストを要求し、チェーンをフィルタリングし、送信するためにフィルタを使用してDBにAPIにどのようなアクセスできるユーザーの詳細を持っている場合あなたが他のリクエストにしたいステータスコード

関連する問題