From 74e563da7fa6886449fd2be5933e2d4ca5c85f48 Mon Sep 17 00:00:00 2001
From: jack <jack.su@pollex.com.tw>
Date: 星期二, 12 九月 2023 11:25:52 +0800
Subject: [PATCH] [UPDATE] 解決弱點Se: Incorrect definition of Serializable class [UPDATE] 解決弱點Information exposure to log file [UPDATE] 解決弱點Use of hard-coded password

---
 pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java |   84 +++++++++++++-----------------------------
 1 files changed, 26 insertions(+), 58 deletions(-)

diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java
index fbb1b24..04bda6b 100644
--- a/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java
+++ b/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java
@@ -1,22 +1,23 @@
 package com.pollex.pam.web.rest;
 
-import com.pollex.pam.domain.User;
-import com.pollex.pam.repository.UserRepository;
-import com.pollex.pam.security.SecurityUtils;
-import com.pollex.pam.service.MailService;
-import com.pollex.pam.service.UserService;
-import com.pollex.pam.service.dto.AdminUserDTO;
-import com.pollex.pam.service.dto.PasswordChangeDTO;
-import com.pollex.pam.web.rest.errors.*;
-import com.pollex.pam.web.rest.vm.KeyAndPasswordVM;
-import com.pollex.pam.web.rest.vm.ManagedUserVM;
+import com.pollex.pam.business.domain.User;
+import com.pollex.pam.business.repository.UserRepository;
+import com.pollex.pam.business.security.SecurityUtils;
+import com.pollex.pam.service.CustomerService;
+import com.pollex.pam.business.service.MailService;
+import com.pollex.pam.business.service.UserService;
+import com.pollex.pam.business.service.dto.AdminUserDTO;
+import com.pollex.pam.business.service.dto.PasswordChangeDTO;
+import com.pollex.pam.business.web.errors.*;
+import com.pollex.pam.business.web.vm.KeyAndPasswordVM;
+import com.pollex.pam.business.web.vm.ManagedUserVM;
 import java.util.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpStatus;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 /**
@@ -41,28 +42,13 @@
 
     private final MailService mailService;
 
+    @Autowired
+    CustomerService customerService;
+
     public AccountResource(UserRepository userRepository, UserService userService, MailService mailService) {
         this.userRepository = userRepository;
         this.userService = userService;
         this.mailService = mailService;
-    }
-
-    /**
-     * {@code POST  /register} : register the user.
-     *
-     * @param managedUserVM the managed user View Model.
-     * @throws InvalidPasswordException {@code 400 (Bad Request)} if the password is incorrect.
-     * @throws EmailAlreadyUsedException {@code 400 (Bad Request)} if the email is already used.
-     * @throws LoginAlreadyUsedException {@code 400 (Bad Request)} if the login is already used.
-     */
-    @PostMapping("/register")
-    @ResponseStatus(HttpStatus.CREATED)
-    public void registerAccount(@Valid @RequestBody ManagedUserVM managedUserVM) {
-        if (isPasswordLengthInvalid(managedUserVM.getPassword())) {
-            throw new InvalidPasswordException();
-        }
-        User user = userService.registerUser(managedUserVM, managedUserVM.getPassword());
-        mailService.sendActivationEmail(user);
     }
 
     /**
@@ -79,17 +65,17 @@
         }
     }
 
-    /**
-     * {@code GET  /authenticate} : check if the user is authenticated, and return its login.
-     *
-     * @param request the HTTP request.
-     * @return the login if the user is authenticated.
-     */
-    @GetMapping("/authenticate")
-    public String isAuthenticated(HttpServletRequest request) {
-        log.debug("REST request to check if the current user is authenticated");
-        return request.getRemoteUser();
-    }
+//    /**
+//     * {@code GET  /authenticate} : check if the user is authenticated, and return its login.
+//     *
+//     * @param request the HTTP request.
+//     * @return the login if the user is authenticated.
+//     */
+//    @GetMapping("/authenticate")
+//    public String isAuthenticated(HttpServletRequest request) {
+//        log.debug("REST request to check if the current user is authenticated");
+//        return request.getRemoteUser();
+//    }
 
     /**
      * {@code GET  /account} : get the current user.
@@ -134,12 +120,6 @@
         );
     }
 
-    /**
-     * {@code POST  /account/change-password} : changes the current user's password.
-     *
-     * @param passwordChangeDto current and new password.
-     * @throws InvalidPasswordException {@code 400 (Bad Request)} if the new password is incorrect.
-     */
     @PostMapping(path = "/account/change-password")
     public void changePassword(@RequestBody PasswordChangeDTO passwordChangeDto) {
         if (isPasswordLengthInvalid(passwordChangeDto.getNewPassword())) {
@@ -148,11 +128,6 @@
         userService.changePassword(passwordChangeDto.getCurrentPassword(), passwordChangeDto.getNewPassword());
     }
 
-    /**
-     * {@code POST   /account/reset-password/init} : Send an email to reset the password of the user.
-     *
-     * @param mail the mail of the user.
-     */
     @PostMapping(path = "/account/reset-password/init")
     public void requestPasswordReset(@RequestBody String mail) {
         Optional<User> user = userService.requestPasswordReset(mail);
@@ -165,13 +140,6 @@
         }
     }
 
-    /**
-     * {@code POST   /account/reset-password/finish} : Finish to reset the password of the user.
-     *
-     * @param keyAndPassword the generated key and the new password.
-     * @throws InvalidPasswordException {@code 400 (Bad Request)} if the password is incorrect.
-     * @throws RuntimeException {@code 500 (Internal Server Error)} if the password could not be reset.
-     */
     @PostMapping(path = "/account/reset-password/finish")
     public void finishPasswordReset(@RequestBody KeyAndPasswordVM keyAndPassword) {
         if (isPasswordLengthInvalid(keyAndPassword.getNewPassword())) {

--
Gitblit v1.8.0