diff --git a/src/main/java/org/ntlab/acanthus_server/entities/Account.java b/src/main/java/org/ntlab/acanthus_server/entities/Account.java index 58f16db..5ffe796 100644 --- a/src/main/java/org/ntlab/acanthus_server/entities/Account.java +++ b/src/main/java/org/ntlab/acanthus_server/entities/Account.java @@ -20,6 +20,8 @@ // //////////////////////////////////////////////////////////////////////////////////////// package org.ntlab.acanthus_server.entities; +import java.util.UUID; + public class Account { private int uid; private String name; @@ -34,43 +36,49 @@ this.password = password; } + //----------------------------------------------------------------- + //----------------------------------------------------------------- //uidを返す //GetとSetを実装 public int getUid() { return uid; } + //----------------------------------------------------------------- public void setUid(int uid) { this.uid = uid; } - + //----------------------------------------------------------------- //tokenを返す //GetとSetを実装 public String getToken() { return token; } - public void setToken(String token) { - this.token = token; + //----------------------------------------------------------------- + // トークンを生成する + public void createToken() { + this.token = UUID.randomUUID().toString(); } + //----------------------------------------------------------------- //passwordをtoken認証後返す public String getPassword(String token) { //IFでトークン認証をしたのちに返す return password; } - + //----------------------------------------------------------------- //emailを返す public String getEmail() { return email; } - + //----------------------------------------------------------------- public void setEmail(String email) { this.email = email; } - - //Auth関数でpassword認証 + //----------------------------------------------------------------- + // パスワードが一致しているかを判定 public boolean isMatchedPassword(String password) { return this.password.equals(password); } diff --git a/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java b/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java index 2885aba..461387e 100644 --- a/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java +++ b/src/main/java/org/ntlab/acanthus_server/resources/accounts/LoginRest.java @@ -5,7 +5,6 @@ import javax.ws.rs.*; import javax.ws.rs.core.MediaType; -import java.util.UUID; @Component @Path("/accounts/login") @@ -18,7 +17,6 @@ /** * ログイン時のトークン認証 * アカウントが存在して, かつトークンを持っているかを確認する - * */ @GET @Produces(MediaType.APPLICATION_JSON) @@ -33,23 +31,24 @@ } //----------------------------------------------------------- + /** - * ログイン時のトークン発行 + * ログイン時, トークンをアカウントに発行させる * * @param email ユーザーの登録したメアド * @param password パスワード */ @PUT @Produces(MediaType.APPLICATION_JSON) - public String getLoginToken(@FormParam("e-mail") String email, @FormParam("password") String password) { + public void authenticateLoginToken(@FormParam("e-mail") String email, @FormParam("password") String password) { var searchAccount = accounts.getAccountByEMail(email); if (searchAccount == null) throw new WebApplicationException(404); if (searchAccount.isMatchedPassword(password)) throw new WebApplicationException(401); - return UUID.randomUUID().toString(); + searchAccount.createToken(); } - + //----------------------------------------------------------- }