Changes in / [5b32153:590f667]
- Location:
- ReserveNGo-backend
- Files:
-
- 28 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
ReserveNGo-backend/pom.xml
r5b32153 r590f667 59 59 60 60 <dependency> 61 <groupId>io.jsonwebtoken</groupId>62 <artifactId>jjwt-api</artifactId>63 <version>0.11.5</version>64 </dependency>65 66 <dependency>67 <groupId>io.jsonwebtoken</groupId>68 <artifactId>jjwt-impl</artifactId>69 <version>0.11.5</version>70 </dependency>71 72 <dependency>73 <groupId>io.jsonwebtoken</groupId>74 <artifactId>jjwt-jackson</artifactId>75 <version>0.11.5</version>76 </dependency>77 78 <dependency>79 61 <groupId>com.h2database</groupId> 80 62 <artifactId>h2</artifactId> -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/ReserveNGoApplication.java
r5b32153 r590f667 14 14 SpringApplication.run(ReserveNGoApplication.class, args); 15 15 } 16 17 @Bean 18 PasswordEncoder passwordEncoder() { 19 return new BCryptPasswordEncoder(10); 20 } 16 21 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/bootstrap/DataHolder.java
r5b32153 r590f667 3 3 import jakarta.annotation.PostConstruct; 4 4 import mk.ukim.finki.it.reservengo.model.*; 5 import mk.ukim.finki.it.reservengo.model.enumerations.Position; 6 import mk.ukim.finki.it.reservengo.model.enumerations.Role; 7 import mk.ukim.finki.it.reservengo.model.enumerations.Service; 5 import mk.ukim.finki.it.reservengo.model.enumerations.*; 8 6 import mk.ukim.finki.it.reservengo.repository.*; 9 7 import org.springframework.security.crypto.password.PasswordEncoder; … … 19 17 public static List<LocalWorker> workers = new ArrayList<>(); 20 18 public static List<LocalManager> managers = new ArrayList<>(); 19 public static List<Event> events = new ArrayList<>(); 20 public static List<Reservation> reservations = new ArrayList<>(); 21 21 public static List<Local> locals = new ArrayList<>(); 22 22 23 23 private final AdminRepository adminRepository; 24 24 private final CustomerRepository customerRepository; 25 private final EventRepository eventRepository; 25 26 private final LocalManagerRepository localManagerRepository; 26 27 private final LocalRepository localRepository; 27 28 private final LocalWorkerRepository localWorkerRepository; 29 private final ReservationRepository reservationRepository; 28 30 private final PasswordEncoder passwordEncoder; 29 31 30 public DataHolder(AdminRepository adminRepository, CustomerRepository customerRepository, LocalManagerRepository localManagerRepository, LocalRepository localRepository, LocalWorkerRepository localWorkerRepository, PasswordEncoder passwordEncoder) {32 public DataHolder(AdminRepository adminRepository, CustomerRepository customerRepository, EventRepository eventRepository, LocalManagerRepository localManagerRepository, LocalRepository localRepository, LocalWorkerRepository localWorkerRepository, ReservationRepository reservationRepository, PasswordEncoder passwordEncoder) { 31 33 this.adminRepository = adminRepository; 32 34 this.customerRepository = customerRepository; 35 this.eventRepository = eventRepository; 33 36 this.localManagerRepository = localManagerRepository; 34 37 this.localRepository = localRepository; 35 38 this.localWorkerRepository = localWorkerRepository; 39 this.reservationRepository = reservationRepository; 36 40 this.passwordEncoder = passwordEncoder; 37 41 } … … 57 61 customerRepository.saveAll(customers); 58 62 59 //Local worker 60 for (int i = 1; i <= 3; i++) { 61 LocalWorker localWorker = new LocalWorker( 62 "FirstName" + i, 63 "LastName" + i, 64 "Email" + i, 65 "Password" + i, 66 "PhoneNumber" + i, 67 Role.LOCAL_WORKER 68 ); 69 workers.add(localWorker); 70 } 71 localWorkerRepository.saveAll(workers); 72 73 //Local manager 74 for (int i = 1; i <= 3; i++) { 75 LocalManager manager = new LocalManager( 76 "FirstName" + i, 77 "LastName" + i, 78 "EmailManager" + i, 79 "Password" + i, 80 "PhoneNumber" + i, 81 Role.LOCAL_MANAGER 82 ); 83 managers.add(manager); 84 } 85 localManagerRepository.saveAll(managers); 86 87 //Local 88 List<Service> serviceList = new ArrayList<>(List.of(Service.values())); 89 List<String> localPhotos; 90 for (int i = 1; i <= 3; i++) { 91 localPhotos = new ArrayList<>(); 92 for (int j = 1; j <= 3; j++) { 93 localPhotos.add("Picture number: " + j); 94 } 95 Local local = new Local( 96 "Name" + i, 97 "Description" + i, 98 "Address" + i, 99 "WorkingHours" + i, 100 serviceList, 101 null, 102 null, 103 localPhotos, 104 "MenuPhoto" + i, 105 "MenuLink" + i, 106 null, 107 null, 108 null 109 ); 110 locals.add(local); 111 } 112 localRepository.saveAll(locals); 63 // Print for debugging purposes 64 System.out.println("Initialization complete!"); 113 65 } 114 66 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/config/WebSecurityConfig.java
r5b32153 r590f667 1 1 package mk.ukim.finki.it.reservengo.config; 2 2 3 import mk.ukim.finki.it.reservengo.config.filter.JWTAuthenticationFilter;4 3 import org.springframework.context.annotation.Bean; 5 4 import org.springframework.context.annotation.Configuration; 6 import org.springframework.security.authentication.AuthenticationProvider;7 5 import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; 8 6 import org.springframework.security.config.annotation.web.builders.HttpSecurity; … … 10 8 import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; 11 9 import org.springframework.security.config.annotation.web.configurers.HeadersConfigurer; 12 import org.springframework.security.config.http.SessionCreationPolicy;13 10 import org.springframework.security.web.SecurityFilterChain; 14 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;15 11 16 12 @Configuration … … 18 14 @EnableMethodSecurity 19 15 public class WebSecurityConfig { 20 21 22 private final JWTAuthenticationFilter jwtAuthFilter;23 private final AuthenticationProvider authenticationProvider;24 25 public WebSecurityConfig(JWTAuthenticationFilter jwtAuthFilter, AuthenticationProvider authenticationProvider) {26 this.jwtAuthFilter = jwtAuthFilter;27 this.authenticationProvider = authenticationProvider;28 }29 16 30 17 @Bean … … 36 23 ) 37 24 .authorizeHttpRequests((requests) -> requests 38 .requestMatchers("/ api/auth/**", "/h2/**")25 .requestMatchers("/**") 39 26 .permitAll() 40 .anyRequest() 41 .authenticated() 27 ) 28 .formLogin((form) -> form 29 .permitAll() 30 .defaultSuccessUrl("/", true) 42 31 ) 43 32 .logout((logout) -> logout … … 46 35 .deleteCookies("JSESSIONID") 47 36 .logoutSuccessUrl("/login") 48 ) 49 .sessionManagement(manager -> manager 50 .sessionCreationPolicy(SessionCreationPolicy.STATELESS) 51 ) 52 .authenticationProvider(authenticationProvider) 53 .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class) 54 ; 37 ); 55 38 56 39 return http.build(); -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Admin.java
r5b32153 r590f667 11 11 @AllArgsConstructor 12 12 @NoArgsConstructor 13 public class Admin extends User { 14 public Admin(String email, String password, Role userRole) { 15 super(null, null, email, password, null, userRole); 13 public class Admin { 14 public Admin(String username, String password, Role userRole) { 15 this.username = username; 16 this.password = password; 17 this.userRole = userRole; 16 18 } 19 20 @Id 21 @GeneratedValue(strategy = GenerationType.IDENTITY) 22 private Long id; 23 24 @Column(unique = true) 25 private String username; 26 27 private String password; 28 29 @Enumerated(EnumType.STRING) 30 private Role userRole = Role.ADMIN; 17 31 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Contact.java
r5b32153 r590f667 16 16 @Embeddable 17 17 public class Contact { 18 18 19 private String phone; 19 20 private String email; -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/Customer.java
r5b32153 r590f667 19 19 @NoArgsConstructor 20 20 public 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) { 27 22 super(firstName, lastName, email, password, phoneNumber, userRole); 28 23 } … … 33 28 @OneToMany 34 29 private List<Local> favouriteLocals; 35 36 37 30 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalManager.java
r5b32153 r590f667 15 15 @NoArgsConstructor 16 16 public class LocalManager extends LocalWorker{ 17 public LocalManager(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole ) {18 super(firstName, lastName, email, password, phoneNumber, userRole );17 public LocalManager(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole, Local local, Position position) { 18 super(firstName, lastName, email, password, phoneNumber, userRole, local, position); 19 19 } 20 20 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/LocalWorker.java
r5b32153 r590f667 14 14 @AllArgsConstructor 15 15 @NoArgsConstructor 16 public class LocalWorker extends User 17 public LocalWorker(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole ) {16 public class LocalWorker extends User{ 17 public LocalWorker(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole, Local local, Position position) { 18 18 super(firstName, lastName, email, password, phoneNumber, userRole); 19 this.local = local; 20 this.position = position; 19 21 } 20 22 -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/User.java
r5b32153 r590f667 4 4 import lombok.AllArgsConstructor; 5 5 import lombok.Data; 6 import lombok.Getter;7 6 import lombok.NoArgsConstructor; 8 7 import mk.ukim.finki.it.reservengo.model.enumerations.Role; 9 import org.springframework.security.core.GrantedAuthority;10 import org.springframework.security.core.authority.SimpleGrantedAuthority;11 import org.springframework.security.core.userdetails.UserDetails;12 8 13 import java.util.Collection; 14 import java.util.List; 15 16 //@Data 9 @Data 17 10 @Entity 18 11 @AllArgsConstructor … … 20 13 @Inheritance(strategy = InheritanceType.JOINED) 21 14 @Table(name = "app_user") 22 public class User implements UserDetails{15 public class User { 23 16 public User(String firstName, String lastName, String email, String password, String phoneNumber, Role userRole) { 24 17 this.firstName = firstName; … … 30 23 } 31 24 32 33 34 @Getter35 25 @Id 36 26 @GeneratedValue(strategy = GenerationType.IDENTITY) … … 50 40 @Enumerated(EnumType.STRING) 51 41 private Role userRole; 52 53 @Override54 public Collection<? extends GrantedAuthority> getAuthorities() {55 return List.of(new SimpleGrantedAuthority(userRole.name())); //check here:IMPORTANT56 }57 58 @Override59 public String getPassword() {60 return password;61 }62 63 @Override64 public String getUsername() {65 return email;66 }67 68 @Override69 public boolean isAccountNonExpired() {70 return true;71 }72 73 @Override74 public boolean isAccountNonLocked() {75 return true;76 }77 78 @Override79 public boolean isCredentialsNonExpired() {80 return true;81 }82 83 @Override84 public boolean isEnabled() {85 return true;86 }87 88 public Long getId() {89 return id;90 }91 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 @Override113 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 }124 42 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/model/enumerations/Role.java
r5b32153 r590f667 4 4 ADMIN, 5 5 CUSTOMER, 6 LOCAL_MANAGER,7 LOCAL_WORKER6 RESTAURANT_MANAGER, 7 RESTAURANT_WORKER 8 8 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/CustomerRepository.java
r5b32153 r590f667 5 5 import org.springframework.stereotype.Repository; 6 6 7 import java.util.Optional;8 9 7 @Repository 10 8 public interface CustomerRepository extends JpaRepository<Customer, Long> { 11 12 Optional<Customer> findByEmail(String email);13 9 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalManagerRepository.java
r5b32153 r590f667 5 5 import org.springframework.stereotype.Repository; 6 6 7 import java.util.Optional;8 9 7 @Repository 10 8 public interface LocalManagerRepository extends JpaRepository<LocalManager, Long> { 11 Optional<LocalManager> findByEmail(String email);12 9 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/LocalWorkerRepository.java
r5b32153 r590f667 5 5 import org.springframework.stereotype.Repository; 6 6 7 import java.util.Optional;8 9 7 @Repository 10 8 public interface LocalWorkerRepository extends JpaRepository<LocalWorker, Long> { 11 Optional<LocalWorker> findByEmail(String email);12 9 } -
ReserveNGo-backend/src/main/java/mk/ukim/finki/it/reservengo/repository/UserRepository.java
r5b32153 r590f667 5 5 import org.springframework.stereotype.Repository; 6 6 7 import java.util.Optional;8 9 7 @Repository 10 8 public interface UserRepository extends JpaRepository<User, Long> { 11 Optional<User> findByEmail(String email); 9 12 10 } -
ReserveNGo-backend/src/main/resources/application.properties
r5b32153 r590f667 3 3 spring.profiles.active=h2 4 4 5
Note:
See TracChangeset
for help on using the changeset viewer.