Changeset bf78464 for ReserveNGo-backend


Ignore:
Timestamp:
04/29/25 15:00:30 (45 hours ago)
Author:
Nikola Jordanoski <nikolaj_koko@…>
Branches:
master
Children:
7d8eeab
Parents:
e0ee7c8
Message:

Refactoring and optimizing

Location:
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo
Files:
1 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/filter/JWTAuthenticationFilter.java

    re0ee7c8 rbf78464  
    66import jakarta.servlet.http.HttpServletResponse;
    77import lombok.NonNull;
     8import mk.ukim.finki.it.reservengo.constants.JWTConstants;
    89import mk.ukim.finki.it.reservengo.service.intf.JWTService;
    910import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
     
    3233                                    @NonNull HttpServletResponse response,
    3334                                    @NonNull FilterChain filterChain) throws ServletException, IOException {
    34         final String authHeader = request.getHeader("Authorization");
     35        final String authHeader = request.getHeader(JWTConstants.HEADER);
    3536        final String jwt;
    3637        final String userEmail;
    3738
    38         if (authHeader == null || !authHeader.startsWith("Bearer ")) {
     39        if (authHeader == null || !authHeader.startsWith(JWTConstants.TOKEN_PREFIX)) {
    3940            filterChain.doFilter(request, response);
    4041            return;
    4142        }
    4243
    43         jwt = authHeader.substring(7);
     44        jwt = authHeader.substring(JWTConstants.TOKEN_PREFIX.length());
    4445        userEmail = jwtService.extractUsername(jwt);
    4546
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/JWTServiceImpl.java

    re0ee7c8 rbf78464  
    66import io.jsonwebtoken.io.Decoders;
    77import io.jsonwebtoken.security.Keys;
     8import mk.ukim.finki.it.reservengo.constants.JWTConstants;
    89import mk.ukim.finki.it.reservengo.model.domain.User;
    910import mk.ukim.finki.it.reservengo.service.intf.JWTService;
     
    1718@Service
    1819public class JWTServiceImpl implements JWTService {
    19 
    20     private static final String SECRET_KEY = "7bce06d6331e532e8c4c85e6eaae4217711768fe1aa582b4549c2722a8ef0497";
    21 
    2220    @Override
    2321    public String extractUsername(String token) {
     
    3735    @Override
    3836    public Key getSignInKey() {
    39         byte[] keyBytes = Decoders.BASE64.decode(SECRET_KEY);
     37        byte[] keyBytes = Decoders.BASE64.decode(JWTConstants.SECRET_KEY);
    4038        return Keys.hmacShaKeyFor(keyBytes);
    4139    }
     
    5452                .claim("id", user.getId())
    5553                .setIssuedAt(new Date())
    56                 .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24))
     54                .setExpiration(new Date(System.currentTimeMillis() + JWTConstants.EXPIRATION_TIME))
    5755                .signWith(getSignInKey(), SignatureAlgorithm.HS256)
    5856                .compact();
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java

    re0ee7c8 rbf78464  
    66import mk.ukim.finki.it.reservengo.service.intf.AuthService;
    77import org.springframework.http.HttpStatus;
    8 import org.springframework.http.MediaType;
    98import org.springframework.http.ResponseEntity;
    10 import org.springframework.web.bind.annotation.*;
     9import org.springframework.web.bind.annotation.PostMapping;
     10import org.springframework.web.bind.annotation.RequestBody;
     11import org.springframework.web.bind.annotation.RequestMapping;
     12import org.springframework.web.bind.annotation.RestController;
    1113
    1214@RestController
     
    1921    }
    2022
    21     @PostMapping(value = "/register/customer", produces = MediaType.APPLICATION_JSON_VALUE)
     23    @PostMapping(value = "/register/customer")
    2224    public ResponseEntity<JWTAuthenticationResponseDTO> registerCustomer(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
    2325        return new ResponseEntity<>(authenticationService.registerCustomer(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/GlobalExceptionHandler.java

    re0ee7c8 rbf78464  
    66import org.springframework.security.authentication.BadCredentialsException;
    77import org.springframework.security.core.AuthenticationException;
    8 import org.springframework.security.core.userdetails.UsernameNotFoundException;
    98import org.springframework.web.bind.annotation.ExceptionHandler;
    109import org.springframework.web.bind.annotation.RestControllerAdvice;
     
    1514    @ExceptionHandler(BadCredentialsException.class)
    1615    public ResponseEntity<String> handleBadCredentials(BadCredentialsException ex) {
    17         return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid email or password");
     16        return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getMessage());
    1817    }
    1918
    2019    @ExceptionHandler(EmailNotFoundException.class)
    2120    public ResponseEntity<String> handleUserNotFound(EmailNotFoundException ex) {
    22         return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found");
     21        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
    2322    }
    2423
    2524    @ExceptionHandler(AuthenticationException.class)
    2625    public ResponseEntity<String> handleUserNotFound(AuthenticationException ex) {
    27         return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Authentication failed");
     26        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
    2827    }
    2928}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/UserController.java

    re0ee7c8 rbf78464  
    2020
    2121    @GetMapping("/info")
    22     public ResponseEntity<?> getUserPersonalInfo(@AuthenticationPrincipal User u) {
    23         User user = userService.findUser(u.getId());
    24         return ResponseEntity.ok(user);
     22    public ResponseEntity<?> getUserPersonalInfo(@AuthenticationPrincipal User user) {
     23        User u = userService.findUser(user.getId());
     24        return ResponseEntity.ok(u);
    2525    }
    2626
Note: See TracChangeset for help on using the changeset viewer.