Changes in / [7d8eeab:dad25fc]


Ignore:
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

    r7d8eeab rdad25fc  
    66import jakarta.servlet.http.HttpServletResponse;
    77import lombok.NonNull;
    8 import mk.ukim.finki.it.reservengo.constants.JWTConstants;
    98import mk.ukim.finki.it.reservengo.service.intf.JWTService;
    109import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
     
    3332                                    @NonNull HttpServletResponse response,
    3433                                    @NonNull FilterChain filterChain) throws ServletException, IOException {
    35         final String authHeader = request.getHeader(JWTConstants.HEADER);
     34        final String authHeader = request.getHeader("Authorization");
    3635        final String jwt;
    3736        final String userEmail;
    3837
    39         if (authHeader == null || !authHeader.startsWith(JWTConstants.TOKEN_PREFIX)) {
     38        if (authHeader == null || !authHeader.startsWith("Bearer ")) {
    4039            filterChain.doFilter(request, response);
    4140            return;
    4241        }
    4342
    44         jwt = authHeader.substring(JWTConstants.TOKEN_PREFIX.length());
     43        jwt = authHeader.substring(7);
    4544        userEmail = jwtService.extractUsername(jwt);
    4645
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/JWTServiceImpl.java

    r7d8eeab rdad25fc  
    66import io.jsonwebtoken.io.Decoders;
    77import io.jsonwebtoken.security.Keys;
    8 import mk.ukim.finki.it.reservengo.constants.JWTConstants;
    98import mk.ukim.finki.it.reservengo.model.domain.User;
    109import mk.ukim.finki.it.reservengo.service.intf.JWTService;
     
    1817@Service
    1918public class JWTServiceImpl implements JWTService {
     19
     20    private static final String SECRET_KEY = "7bce06d6331e532e8c4c85e6eaae4217711768fe1aa582b4549c2722a8ef0497";
     21
    2022    @Override
    2123    public String extractUsername(String token) {
     
    3537    @Override
    3638    public Key getSignInKey() {
    37         byte[] keyBytes = Decoders.BASE64.decode(JWTConstants.SECRET_KEY);
     39        byte[] keyBytes = Decoders.BASE64.decode(SECRET_KEY);
    3840        return Keys.hmacShaKeyFor(keyBytes);
    3941    }
     
    5254                .claim("id", user.getId())
    5355                .setIssuedAt(new Date())
    54                 .setExpiration(new Date(System.currentTimeMillis() + JWTConstants.EXPIRATION_TIME))
     56                .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 24))
    5557                .signWith(getSignInKey(), SignatureAlgorithm.HS256)
    5658                .compact();
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java

    r7d8eeab rdad25fc  
    66import mk.ukim.finki.it.reservengo.service.intf.AuthService;
    77import org.springframework.http.HttpStatus;
     8import org.springframework.http.MediaType;
    89import org.springframework.http.ResponseEntity;
    9 import org.springframework.web.bind.annotation.PostMapping;
    10 import org.springframework.web.bind.annotation.RequestBody;
    11 import org.springframework.web.bind.annotation.RequestMapping;
    12 import org.springframework.web.bind.annotation.RestController;
     10import org.springframework.web.bind.annotation.*;
    1311
    1412@RestController
     
    2119    }
    2220
    23     @PostMapping(value = "/register/customer")
     21    @PostMapping(value = "/register/customer", produces = MediaType.APPLICATION_JSON_VALUE)
    2422    public ResponseEntity<JWTAuthenticationResponseDTO> registerCustomer(@RequestBody JWTAuthenticationRequestDTO jwtAuthenticationRequestDTO) {
    2523        return new ResponseEntity<>(authenticationService.registerCustomer(jwtAuthenticationRequestDTO), HttpStatus.CREATED);
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/GlobalExceptionHandler.java

    r7d8eeab rdad25fc  
    66import org.springframework.security.authentication.BadCredentialsException;
    77import org.springframework.security.core.AuthenticationException;
     8import org.springframework.security.core.userdetails.UsernameNotFoundException;
    89import org.springframework.web.bind.annotation.ExceptionHandler;
    910import org.springframework.web.bind.annotation.RestControllerAdvice;
     
    1415    @ExceptionHandler(BadCredentialsException.class)
    1516    public ResponseEntity<String> handleBadCredentials(BadCredentialsException ex) {
    16         return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getMessage());
     17        return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid email or password");
    1718    }
    1819
    1920    @ExceptionHandler(EmailNotFoundException.class)
    2021    public ResponseEntity<String> handleUserNotFound(EmailNotFoundException ex) {
    21         return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
     22        return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found");
    2223    }
    2324
    2425    @ExceptionHandler(AuthenticationException.class)
    2526    public ResponseEntity<String> handleUserNotFound(AuthenticationException ex) {
    26         return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
     27        return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Authentication failed");
    2728    }
    2829}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/UserController.java

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