From 207a8caf21f68f38cb147e37df64d4084aaf9f69 Mon Sep 17 00:00:00 2001 From: lensferno Date: Fri, 3 Jun 2022 21:51:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E5=9B=BE=E7=94=A8spring=20boot?= =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86=E4=B8=80=E4=B8=8B=E5=A4=A7=E9=83=A8?= =?UTF-8?q?=E5=88=86=EF=BC=8Clogin=E9=83=A8=E5=88=86=E5=B0=9D=E8=AF=95?= =?UTF-8?q?=E5=8F=82=E8=80=83=E4=BA=86=E4=B8=80=E4=B8=8B=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=BF=9B=E8=A1=8C=E6=8B=86=E5=88=86=E4=B8=BA?= =?UTF-8?q?controller=E5=92=8Cservice=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 36 +++++---- .../trailblazer/api/v1/ServerMain.java | 17 ++++ .../api/v1/controllers/FeedBack.java | 18 +++++ .../trailblazer/api/v1/controllers/Index.java | 15 ++++ .../api/v1/controllers/auth/login/Login.java | 50 ++++++++++++ .../auth}/register/Register.java | 18 ++--- .../controllers/auth/token/TokenChecker.java | 16 ++++ .../auth/token/TokenRefresher.java | 16 ++++ .../api/v1/controllers/profile/Profile.java | 15 ++++ .../trailblazer/api/v1/service/FeedBack.java | 20 ----- .../trailblazer/api/v1/service/Index.java | 16 ---- .../v1/service/auth/login/LoginService.java | 48 ++++++++++++ .../v1/service/auth/register/Register.java | 4 + .../{ => auth}/token/TokenChecker.java | 10 +-- .../v1/service/auth/token/TokenRefresher.java | 7 ++ .../api/v1/service/login/Login.java | 78 ------------------- .../api/v1/service/profile/Profile.java | 19 ----- .../api/v1/service/token/TokenRefresher.java | 16 ---- src/main/webapp/WEB-INF/web.xml | 2 +- 19 files changed, 236 insertions(+), 185 deletions(-) create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/ServerMain.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/controllers/FeedBack.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/controllers/Index.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/login/Login.java rename src/main/java/me/lensfrex/trailblazer/api/v1/{service => controllers/auth}/register/Register.java (83%) create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenChecker.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenRefresher.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/controllers/profile/Profile.java delete mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/FeedBack.java delete mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/Index.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/login/LoginService.java create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/register/Register.java rename src/main/java/me/lensfrex/trailblazer/api/v1/service/{ => auth}/token/TokenChecker.java (50%) create mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenRefresher.java delete mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/login/Login.java delete mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/profile/Profile.java delete mode 100644 src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenRefresher.java diff --git a/pom.xml b/pom.xml index 782b373..325db0a 100644 --- a/pom.xml +++ b/pom.xml @@ -1,21 +1,29 @@ + 4.0.0 - me.lensfrex Trailblazer 0.0.1-dev Trailblazer war + + me.lensfrex.trailblazer.api.v1.ServerMain UTF-8 1.8 1.8 5.8.1 + + org.springframework.boot + spring-boot-starter-parent + 2.7.0 + + @@ -25,22 +33,6 @@ provided - - org.glassfish.jersey.core - jersey-server - 3.0.4 - - - org.glassfish.jersey.containers - jersey-container-servlet - 3.0.4 - - - org.glassfish.jersey.inject - jersey-hk2 - 3.0.4 - - com.google.code.gson @@ -93,6 +85,16 @@ 2.11.0 + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/ServerMain.java b/src/main/java/me/lensfrex/trailblazer/api/v1/ServerMain.java new file mode 100644 index 0000000..7c3c627 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/ServerMain.java @@ -0,0 +1,17 @@ +package me.lensfrex.trailblazer.api.v1; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; + +@SpringBootApplication +public class ServerMain extends SpringBootServletInitializer { + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(ServerMain.class); + } + public static void main(String[] args) { + SpringApplication.run(ServerMain.class, args); + } +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/FeedBack.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/FeedBack.java new file mode 100644 index 0000000..cf6b084 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/FeedBack.java @@ -0,0 +1,18 @@ +package me.lensfrex.trailblazer.api.v1.controllers; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 只是方便前端测试自己到底发了什么数据给后端 + * 返回数据不是很详细,只是把数据体原样给返回了 + * 但是header信息之类的并没有提供 + */ +@RequestMapping("/test") +public class FeedBack { + @PostMapping() + public String returnPostRequest(String string) { + return string; + } +} \ No newline at end of file diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/Index.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/Index.java new file mode 100644 index 0000000..223b249 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/Index.java @@ -0,0 +1,15 @@ +package me.lensfrex.trailblazer.api.v1.controllers; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/") +public class Index { + @GetMapping() + public String index() { + return "Here is the API root of Trailblazer.
\n" + + "To use the API currently, please see the Trailblazer RESTFul API document."; + } +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/login/Login.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/login/Login.java new file mode 100644 index 0000000..7dffb4b --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/login/Login.java @@ -0,0 +1,50 @@ +package me.lensfrex.trailblazer.api.v1.controllers.auth.login; + +import com.google.gson.Gson; +import com.google.gson.JsonParseException; +import me.lensfrex.trailblazer.api.v1.beans.requests.LoginRequestBody; +import me.lensfrex.trailblazer.api.v1.beans.responses.general.ResponseBase; +import me.lensfrex.trailblazer.api.v1.beans.responses.general.ResponseCode; +import me.lensfrex.trailblazer.api.v1.exceptions.RequestDataInvalidException; +import me.lensfrex.trailblazer.api.v1.exceptions.user.LoginInfoWrongException; +import me.lensfrex.trailblazer.api.v1.service.auth.login.LoginService; +import me.lensfrex.trailblazer.api.v1.utils.InputChecker; +import me.lensfrex.trailblazer.api.v1.utils.jwt.JWTManager; +import org.mindrot.jbcrypt.BCrypt; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController +@RequestMapping("/user") +public class Login { + private static final Gson gson = new Gson(); + private static final JWTManager jwtManager = JWTManager.getInstance(); + + @Resource + private LoginService loginService; + + @PostMapping(value = "/login", produces = "application/json") + public String login(@RequestBody String request) { + LoginRequestBody loginRequestBody; + try { + loginRequestBody = gson.fromJson(request, LoginRequestBody.class); + if (InputChecker.hasInvalidChar(loginRequestBody.getUserName()) || + InputChecker.hasInvisibleChar(loginRequestBody.getPassword())) { + throw new RequestDataInvalidException(); + } + + return gson.toJson(loginService.getLoginResponseBody(loginRequestBody)); + } catch (JsonParseException | RequestDataInvalidException e) { + return gson.toJson(ResponseBase.error(ResponseCode.REQUEST_FORMAT_INVALID, "请求的数据格式不对")); + } catch (LoginInfoWrongException e) { + return gson.toJson(ResponseBase.error(ResponseCode.PASSWORD_WRONG, "用户名或密码错误")); + } catch (Exception e) { + return gson.toJson(ResponseBase.error(ResponseCode.SERVER_ERROR, "服务器内部错误,请联系那个背锅的家伙")); + } + } + + public boolean identifyPassword(String originPassword, String bcryptPassword) { + return BCrypt.checkpw(originPassword, bcryptPassword); + } +} \ No newline at end of file diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/register/Register.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/register/Register.java similarity index 83% rename from src/main/java/me/lensfrex/trailblazer/api/v1/service/register/Register.java rename to src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/register/Register.java index b6106ad..f57fa01 100644 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/register/Register.java +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/register/Register.java @@ -1,11 +1,7 @@ -package me.lensfrex.trailblazer.api.v1.service.register; +package me.lensfrex.trailblazer.api.v1.controllers.auth.register; import com.google.gson.Gson; import com.google.gson.JsonParseException; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; import me.lensfrex.trailblazer.api.v1.beans.requests.RegisterRequestBody; import me.lensfrex.trailblazer.api.v1.beans.responses.general.ResponseCode; import me.lensfrex.trailblazer.api.v1.beans.responses.RegisterResponseData; @@ -15,20 +11,24 @@ import me.lensfrex.trailblazer.api.v1.exceptions.RequestDataInvalidException; import me.lensfrex.trailblazer.api.v1.utils.InputChecker; import me.lensfrex.trailblazer.api.v1.utils.jwt.JWTManager; import org.mindrot.jbcrypt.BCrypt; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Date; import java.util.UUID; -@Path("/register") +@RestController +@RequestMapping("/user") public class Register { private static final JWTManager jwtManager = JWTManager.getInstance(); private static final Gson gson = new Gson(); - @POST - @Produces(MediaType.APPLICATION_JSON) - public String register(String request) { + @PostMapping(value = "/register", produces = "application/json") + public String register(@RequestBody String request) { RegisterRequestBody registerRequestBody; try { diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenChecker.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenChecker.java new file mode 100644 index 0000000..b1d92ae --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenChecker.java @@ -0,0 +1,16 @@ +package me.lensfrex.trailblazer.api.v1.controllers.auth.token; + + +import me.lensfrex.trailblazer.api.v1.utils.jwt.JWTManager; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/token") +public class TokenChecker { + public static final JWTManager jwtManager = JWTManager.getInstance(); + + @PostMapping(value = "/check", produces = "application/json") + public String checkTokenAvailable(@RequestBody String request) { + return String.valueOf(jwtManager.verifyToken(request)); + } +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenRefresher.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenRefresher.java new file mode 100644 index 0000000..58e636d --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/auth/token/TokenRefresher.java @@ -0,0 +1,16 @@ +package me.lensfrex.trailblazer.api.v1.controllers.auth.token; + + +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/token") +public class TokenRefresher { + @RequestMapping(value = "/refresh", method = RequestMethod.POST, produces = "application/json") + public String refreshToken(@RequestBody String request) { + return request; + } +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/profile/Profile.java b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/profile/Profile.java new file mode 100644 index 0000000..91f7d41 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/controllers/profile/Profile.java @@ -0,0 +1,15 @@ +package me.lensfrex.trailblazer.api.v1.controllers.profile; + +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +@RequestMapping("/profile") +public class Profile { + +// @Path("/getItems/{uid}") +// @Produces(MediaType.APPLICATION_JSON) + public String getProfiles(@RequestBody String uid) { + return "unfinished feature..."; + } + +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/FeedBack.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/FeedBack.java deleted file mode 100644 index 77b5414..0000000 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/FeedBack.java +++ /dev/null @@ -1,20 +0,0 @@ -package me.lensfrex.trailblazer.api.v1.service; - -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -/** - * 只是方便前端测试自己到底发了什么数据给后端 - * 返回数据不是很详细,只是把数据体原样给返回了 - * 但是header信息之类的并没有提供 - */ -@Path("/test") -public class FeedBack { - @POST - @Produces(MediaType.TEXT_PLAIN) - public String returnRequest(String string) { - return string; - } -} \ No newline at end of file diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/Index.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/Index.java deleted file mode 100644 index dc3430f..0000000 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/Index.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.lensfrex.trailblazer.api.v1.service; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -@Path("/") -public class Index { - @GET - @Produces(MediaType.TEXT_HTML) - public String index() { - return "Here is the API root of Trailblazer.
\n" + - "To use the API currently, please see the Trailblazer RESTFul API document."; - } -} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/login/LoginService.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/login/LoginService.java new file mode 100644 index 0000000..a49dce8 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/login/LoginService.java @@ -0,0 +1,48 @@ +package me.lensfrex.trailblazer.api.v1.service.auth.login; + +import me.lensfrex.trailblazer.api.v1.beans.requests.LoginRequestBody; +import me.lensfrex.trailblazer.api.v1.beans.responses.LoginResponseData; +import me.lensfrex.trailblazer.api.v1.beans.responses.general.ResponseBase; +import me.lensfrex.trailblazer.api.v1.dao.UserDao; +import me.lensfrex.trailblazer.api.v1.exceptions.user.LoginInfoWrongException; +import me.lensfrex.trailblazer.api.v1.pojos.UserInformation; +import me.lensfrex.trailblazer.api.v1.utils.jwt.JWTManager; +import org.mindrot.jbcrypt.BCrypt; +import org.springframework.stereotype.Service; + +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Date; + +@Service +public class LoginService { + private static final JWTManager jwtManager = JWTManager.getInstance(); + + public ResponseBase getLoginResponseBody(LoginRequestBody loginRequestBody) throws LoginInfoWrongException { + UserInformation userDatabaseInformation = UserDao.getUser(loginRequestBody.getUserName()); + + if (userDatabaseInformation == null) { + throw new LoginInfoWrongException(); + } + + if (!identifyPassword(loginRequestBody.getPassword(), userDatabaseInformation.password)) { + throw new LoginInfoWrongException(); + } + + Date expireDate = Date.from(Instant.now().plus(JWTManager.TOKEN_DEFAULT_EXPIRE_DAY, ChronoUnit.DAYS)); + String userToken = jwtManager.createNewJWT(loginRequestBody.getUserName(), expireDate); + + LoginResponseData loginResponseData = new LoginResponseData( + userDatabaseInformation.uid, + userDatabaseInformation.uuid, + userDatabaseInformation.accountStatus, + userToken, + expireDate.getTime()); + + return ResponseBase.success(loginResponseData); + } + + private boolean identifyPassword(String originPassword, String bcryptPassword) { + return BCrypt.checkpw(originPassword, bcryptPassword); + } +} \ No newline at end of file diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/register/Register.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/register/Register.java new file mode 100644 index 0000000..48f7b41 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/register/Register.java @@ -0,0 +1,4 @@ +package me.lensfrex.trailblazer.api.v1.service.auth.register; + +public class Register { +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenChecker.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenChecker.java similarity index 50% rename from src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenChecker.java rename to src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenChecker.java index ea5048a..2ba95f5 100644 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenChecker.java +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenChecker.java @@ -1,18 +1,10 @@ -package me.lensfrex.trailblazer.api.v1.service.token; +package me.lensfrex.trailblazer.api.v1.service.auth.token; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; import me.lensfrex.trailblazer.api.v1.utils.jwt.JWTManager; -@Path("/token") public class TokenChecker { public static final JWTManager jwtManager = JWTManager.getInstance(); - @POST - @Path("/check") - @Produces(MediaType.APPLICATION_JSON) public String checkTokenAvailable(String request) { return String.valueOf(jwtManager.verifyToken(request)); } diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenRefresher.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenRefresher.java new file mode 100644 index 0000000..dbb5369 --- /dev/null +++ b/src/main/java/me/lensfrex/trailblazer/api/v1/service/auth/token/TokenRefresher.java @@ -0,0 +1,7 @@ +package me.lensfrex.trailblazer.api.v1.service.auth.token; + +public class TokenRefresher { + public String refreshToken(String request) { + return request; + } +} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/login/Login.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/login/Login.java deleted file mode 100644 index 23bc385..0000000 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/login/Login.java +++ /dev/null @@ -1,78 +0,0 @@ -package me.lensfrex.trailblazer.api.v1.service.login; - -import com.google.gson.Gson; -import com.google.gson.JsonParseException; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; -import me.lensfrex.trailblazer.api.v1.beans.requests.LoginRequestBody; -import me.lensfrex.trailblazer.api.v1.beans.responses.LoginResponseData; -import me.lensfrex.trailblazer.api.v1.beans.responses.general.ErrorResponse; -import me.lensfrex.trailblazer.api.v1.beans.responses.general.ResponseBase; -import me.lensfrex.trailblazer.api.v1.beans.responses.general.ResponseCode; -import me.lensfrex.trailblazer.api.v1.exceptions.user.LoginInfoWrongException; -import me.lensfrex.trailblazer.api.v1.pojos.UserInformation; -import me.lensfrex.trailblazer.api.v1.utils.InputChecker; -import me.lensfrex.trailblazer.api.v1.dao.UserDao; -import me.lensfrex.trailblazer.api.v1.utils.jwt.JWTManager; -import org.mindrot.jbcrypt.BCrypt; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.Date; - -@Path("/login") -public class Login { - private static final Gson gson = new Gson(); - private static final JWTManager jwtManager = JWTManager.getInstance(); - - @POST - @Produces(MediaType.APPLICATION_JSON) - public String login(String request) { - LoginRequestBody loginRequestBody; - try { - loginRequestBody = gson.fromJson(request, LoginRequestBody.class); - if (InputChecker.hasInvalidChar(loginRequestBody.getUserName()) || - InputChecker.hasInvisibleChar(loginRequestBody.getPassword())) { - ErrorResponse errorResponse = new ErrorResponse(100, "请求的用户名或密码非法"); - - return gson.toJson(errorResponse); - } - - UserInformation userDatabaseInformation = UserDao.getUser(loginRequestBody.getUserName()); - - if (userDatabaseInformation == null) { - throw new LoginInfoWrongException(); - } - - if (!identifyPassword(loginRequestBody.getPassword(), userDatabaseInformation.password)) { - throw new LoginInfoWrongException(); - } - - Date expireDate = Date.from(Instant.now().plus(JWTManager.TOKEN_DEFAULT_EXPIRE_DAY, ChronoUnit.DAYS)); - String userToken = jwtManager.createNewJWT(loginRequestBody.getUserName(), expireDate); - - LoginResponseData loginResponseData = new LoginResponseData( - userDatabaseInformation.uid, - userDatabaseInformation.uuid, - userDatabaseInformation.accountStatus, - userToken, - expireDate.getTime()); - - ResponseBase response = ResponseBase.success(loginResponseData); - - return gson.toJson(response); - } catch (JsonParseException e) { - return gson.toJson(ResponseBase.error(ResponseCode.REQUEST_FORMAT_INVALID, "请求的数据格式不对")); - } catch (LoginInfoWrongException e) { - return gson.toJson(ResponseBase.error(ResponseCode.PASSWORD_WRONG, "用户名或密码错误")); - } catch (Exception e) { - return gson.toJson(ResponseBase.error(ResponseCode.SERVER_ERROR, "服务器内部错误,请联系那个背锅的家伙")); - } - } - - public boolean identifyPassword(String originPassword, String bcryptPassword) { - return BCrypt.checkpw(originPassword, bcryptPassword); - } -} \ No newline at end of file diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/profile/Profile.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/profile/Profile.java deleted file mode 100644 index 940a21b..0000000 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/profile/Profile.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.lensfrex.trailblazer.api.v1.service.profile; - -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.PathParam; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -@Path("/profile") -public class Profile { - - @GET - @Path("/getItems/{uid}") - @Produces(MediaType.APPLICATION_JSON) - public String getProfiles(@PathParam("uid") String uid) { - return "unfinished feature..."; - } - -} diff --git a/src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenRefresher.java b/src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenRefresher.java deleted file mode 100644 index fbcb2cc..0000000 --- a/src/main/java/me/lensfrex/trailblazer/api/v1/service/token/TokenRefresher.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.lensfrex.trailblazer.api.v1.service.token; - -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; - -@Path("/token") -public class TokenRefresher { - @Path("/refresh") - @POST - @Produces(MediaType.APPLICATION_JSON) - public String refreshToken(String request) { - return request; - } -} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 6192d0f..b53372f 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -6,7 +6,7 @@ TrailblazerApiV1 - org.glassfish.jersey.servlet.ServletContainer + jersey.config.server.provider.packages