アプリとMySQLの間でJerseyを使用してRestfulWebサービスを開発しています。また、データをデータベースにマップするためAndroid, iPhone
にも使用します。Hibernate
sessionId(キー)があります。これは、ユーザーがシステムにログインしたときに生成されます。
User
クラスで:
public Session daoCreateSession() {
if (session == null) {
session = new Session(this);
} else {
session.daoUpdate();
}
return session;
}
Session
クラスで:
Session(User user) {
this.key = UUID.randomUUID().toString();
this.user = user;
this.date = new Date();
}
void daoUpdate() {
this.key = UUID.randomUUID().toString();
this.date = new Date();
}
ユーザーがシステムに正常にサインインすると、このsessionIdをモバイルアプリクライアントに送信します。次に、ログインしたユーザーに基づいてデータベースから情報を取得する場合、すべての要求の認証としてこのセッションキーを確認します。in the REST Services
たとえば、ユーザーが関与しているプロジェクトのリストには、client.GET(SERVER_ADDRESS/project/get/{SessionID})
のはめ込みclient.GET(SERVER_ADDRESS/project/get/{username})
。
また、有効なセッションキーでない場合は、403禁止コードをクライアントに送り返します。こちらもご覧ください
問題は、自分のアプローチがよくわからないということです。cons
ジャージーとモバイルアプリを考慮して、このアプローチでどう思いますか?Session key
私の場合、このアプローチが良いアイデアかどうかはまだわかりません。