Changeset 4446c6f


Ignore:
Timestamp:
01/23/25 17:55:05 (3 months ago)
Author:
Nikola Jordanoski <nikolaj_koko@…>
Branches:
master
Children:
f9ef3e8
Parents:
5b32153
Message:

Fixed Lombok, finished security (register & login), added listing locals

Location:
ReserveNGo-backend
Files:
1 added
13 edited

Legend:

Unmodified
Added
Removed
  • ReserveNGo-backend/pom.xml

    r5b32153 r4446c6f  
    3434            <groupId>org.projectlombok</groupId>
    3535            <artifactId>lombok</artifactId>
    36             <optional>true</optional>
     36            <version>1.18.30</version>
     37            <scope>provided</scope>
    3738        </dependency>
    3839
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/ApplicationConfig.java

    r5b32153 r4446c6f  
    2323
    2424    @Bean
    25     PasswordEncoder passwordEncoder() {
     25    public PasswordEncoder passwordEncoder() {
    2626        return new BCryptPasswordEncoder(10);
    27 
    2827    }
    2928
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java

    r5b32153 r4446c6f  
    1919public class WebSecurityConfig {
    2020
    21 
    2221    private final JWTAuthenticationFilter jwtAuthFilter;
    2322    private final AuthenticationProvider authenticationProvider;
     
    3635                )
    3736                .authorizeHttpRequests((requests) -> requests
    38                         .requestMatchers("/api/auth/**", "/h2/**")
     37                        .requestMatchers("/api/auth/**", "/h2/**","/api/locals")
    3938                        .permitAll()
    4039                        .anyRequest()
     
    5150                )
    5251                .authenticationProvider(authenticationProvider)
    53                 .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class)
    54         ;
     52                .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class);
    5553
    5654        return http.build();
    5755    }
    58 
    5956}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/filter/JWTAuthenticationFilter.java

    r5b32153 r4446c6f  
    3939            return;
    4040        }
     41
    4142        jwt = authHeader.substring(7);
    4243        userEmail = jwtService.extractUsername(jwt);
     44
    4345        if (userEmail != null && SecurityContextHolder.getContext().getAuthentication() == null) {
    4446            UserDetails userDetails = userDetailsService.loadUserByUsername(userEmail);
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Admin.java

    r5b32153 r4446c6f  
    44import lombok.AllArgsConstructor;
    55import lombok.Data;
     6import lombok.EqualsAndHashCode;
    67import lombok.NoArgsConstructor;
    78import mk.ukim.finki.it.reservengo.model.enumerations.Role;
    89
     10@EqualsAndHashCode(callSuper = true)
    911@Data
    1012@Entity
    11 @AllArgsConstructor
    1213@NoArgsConstructor
    1314public class Admin extends User {
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Customer.java

    r5b32153 r4446c6f  
    1919@NoArgsConstructor
    2020public class Customer extends User {
    21     public Customer(String firstName,
    22                     String lastName,
    23                     String email,
    24                     String password,
    25                     String phoneNumber,
    26                     Role userRole) {
     21    public Customer(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
    2722        super(firstName, lastName, email, password, phoneNumber, userRole);
    2823    }
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/JWTAuthenticationResponse.java

    r5b32153 r4446c6f  
    77
    88@Data
    9 //@AllArgsConstructor
     9@AllArgsConstructor
    1010@NoArgsConstructor
    1111public class JWTAuthenticationResponse {
     
    1414    private String lastName;
    1515    private String email;
    16     private String password;
    1716    private String phoneNumber;
    1817    private Role role;
    1918    private String token;
    20 
    21 
    22     public JWTAuthenticationResponse(Long id, String firstName, String lastName, String email, String phoneNumber, Role role, String token) {
    23         this.id = id;
    24         this.firstName = firstName;
    25         this.lastName = lastName;
    26         this.email = email;
    27         this.phoneNumber = phoneNumber;
    28         this.role = role;
    29         this.token = token;
    30     }
    3119}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalManager.java

    r5b32153 r4446c6f  
    1212@Data
    1313@Entity
    14 @AllArgsConstructor
    1514@NoArgsConstructor
    16 public class LocalManager extends LocalWorker{
     15public class LocalManager extends LocalWorker {
    1716    public LocalManager(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) {
    1817        super(firstName, lastName, email, password, phoneNumber, userRole);
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/User.java

    r5b32153 r4446c6f  
    1414import java.util.List;
    1515
    16 //@Data
     16@Data
    1717@Entity
    1818@AllArgsConstructor
     
    3030    }
    3131
    32 
    33 
    34     @Getter
    3532    @Id
    3633    @GeneratedValue(strategy = GenerationType.IDENTITY)
     
    8683    }
    8784
    88     public Long getId() {
    89         return id;
    90     }
     85//    public Long getId() {
     86//        return id;
     87//    }
     88//
     89//    public String getFirstName() {
     90//        return firstName;
     91//    }
     92//
     93//    public String getLastName() {
     94//        return lastName;
     95//    }
     96//
     97//    public String getEmail() {
     98//        return email;
     99//    }
     100//
     101//    public String getPhoneNumber() {
     102//        return phoneNumber;
     103//    }
     104//
     105//    public Role getUserRole() {
     106//        return userRole;
     107//    }
    91108
    92     public String getFirstName() {
    93         return firstName;
    94     }
    95 
    96     public String getLastName() {
    97         return lastName;
    98     }
    99 
    100     public String getEmail() {
    101         return email;
    102     }
    103 
    104     public String getPhoneNumber() {
    105         return phoneNumber;
    106     }
    107 
    108     public Role getUserRole() {
    109         return userRole;
    110     }
    111 
    112     @Override
    113     public String toString() {
    114         return "User{" +
    115                 "id=" + id +
    116                 ", firstName='" + firstName + '\'' +
    117                 ", lastName='" + lastName + '\'' +
    118                 ", email='" + email + '\'' +
    119                 ", password='" + password + '\'' +
    120                 ", phoneNumber='" + phoneNumber + '\'' +
    121                 ", userRole=" + userRole +
    122                 '}';
    123     }
     109//    @Override
     110//    public String toString() {
     111//        return "User{" +
     112//                "id=" + id +
     113//                ", firstName='" + firstName + '\'' +
     114//                ", lastName='" + lastName + '\'' +
     115//                ", email='" + email + '\'' +
     116//                ", password='" + password + '\'' +
     117//                ", phoneNumber='" + phoneNumber + '\'' +
     118//                ", userRole=" + userRole +
     119//                '}';
     120//    }
    124121}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/AuthServiceImpl.java

    r5b32153 r4446c6f  
    3939        Customer customer = new Customer(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.CUSTOMER);
    4040        customerRepository.save(customer);
    41         Customer customer1 = customerRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
    4241        String jwt = jwtService.generateTokenNoClaims(customer);
     42
    4343        System.out.println(jwt);
    44         System.out.println(customer1);
     44        System.out.println(customer);
     45
    4546        return new JWTAuthenticationResponse(
    46                 customer1.getId(),
    47                 customer1.getFirstName(),
    48                 customer1.getLastName(),
    49                 customer1.getEmail(),
    50                 customer1.getPhoneNumber(),
     47                customer.getId(),
     48                customer.getFirstName(),
     49                customer.getLastName(),
     50                customer.getEmail(),
     51                customer.getPhoneNumber(),
    5152                Role.CUSTOMER,
    5253                jwt);
     
    5758        LocalWorker localWorker = new LocalWorker(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.LOCAL_WORKER);
    5859        localWorkerRepository.save(localWorker);
    59         LocalWorker localWorker1 = localWorkerRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
    6060        String jwt = jwtService.generateTokenNoClaims(localWorker);
    6161
    6262        return new JWTAuthenticationResponse(
    63                 localWorker1.getId(),
    64                 localWorker1.getFirstName(),
    65                 localWorker1.getLastName(),
    66                 localWorker1.getEmail(),
    67                 localWorker1.getPhoneNumber(),
     63                localWorker.getId(),
     64                localWorker.getFirstName(),
     65                localWorker.getLastName(),
     66                localWorker.getEmail(),
     67                localWorker.getPhoneNumber(),
    6868                Role.LOCAL_WORKER,
    6969                jwt);
     
    7474        LocalManager localManager = new LocalManager(firstName, lastName, email, passwordEncoder.encode(password), phoneNumber, Role.LOCAL_MANAGER);
    7575        localManagerRepository.save(localManager);
    76         LocalManager localManager1 = localManagerRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
    7776        String jwt = jwtService.generateTokenNoClaims(localManager);
    7877
    7978        return new JWTAuthenticationResponse(
    80                 localManager1.getId(),
    81                 localManager1.getFirstName(),
    82                 localManager1.getLastName(),
    83                 localManager1.getEmail(),
    84                 localManager1.getPhoneNumber(),
     79                localManager.getId(),
     80                localManager.getFirstName(),
     81                localManager.getLastName(),
     82                localManager.getEmail(),
     83                localManager.getPhoneNumber(),
    8584                Role.LOCAL_MANAGER,
    8685                jwt);
     
    8988    @Override
    9089    public JWTAuthenticationResponse login(String email, String password) {
    91         authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email,password));
     90        authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email, password));
    9291        User user = userRepository.findByEmail(email).orElseThrow(() -> new EmailNotFoundException(email));
    9392        String jwt = jwtService.generateTokenNoClaims(user);
     93
    9494        System.out.println(jwt);
    9595        System.out.println(user);
     96
    9697        return new JWTAuthenticationResponse(
    9798                user.getId(),
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/impl/LocalServiceImpl.java

    r5b32153 r4446c6f  
    11package mk.ukim.finki.it.reservengo.service.impl;
    22
     3import mk.ukim.finki.it.reservengo.model.Local;
     4import mk.ukim.finki.it.reservengo.repository.LocalRepository;
    35import mk.ukim.finki.it.reservengo.service.intf.LocalService;
    46import org.springframework.stereotype.Service;
    57
     8import java.util.List;
     9
    610@Service
    711public class LocalServiceImpl implements LocalService {
     12
     13    private final LocalRepository localRepository;
     14
     15    public LocalServiceImpl(LocalRepository localRepository) {
     16        this.localRepository = localRepository;
     17    }
     18
     19    @Override
     20    public List<Local> listAll() {
     21        return localRepository.findAll();
     22    }
     23
     24   
     25
    826}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/service/intf/LocalService.java

    r5b32153 r4446c6f  
    11package mk.ukim.finki.it.reservengo.service.intf;
    22
     3import mk.ukim.finki.it.reservengo.model.Local;
     4
     5import java.util.List;
     6
    37public interface LocalService {
     8    List<Local> listAll();
    49}
  • ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/web/AuthController.java

    r5b32153 r4446c6f  
    2525                                                                      @RequestParam String password,
    2626                                                                      @RequestParam String phoneNumber) {
    27         return new ResponseEntity<>(authenticationService.registerCustomer(firstName, lastName, email, password, phoneNumber), HttpStatus.OK);
     27        return new ResponseEntity<>(authenticationService.registerCustomer(firstName, lastName, email, password, phoneNumber), HttpStatus.CREATED);
    2828    }
    2929
Note: See TracChangeset for help on using the changeset viewer.