diff --git a/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/FullstackProsjektApplication.java b/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/FullstackProsjektApplication.java index c994953619f2fb3988302a18bf8f0bae8ac93e62..702c3822748352986aec036dc0fd3fb4dc9ff59c 100644 --- a/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/FullstackProsjektApplication.java +++ b/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/FullstackProsjektApplication.java @@ -21,5 +21,24 @@ public class FullstackProsjektApplication { SpringApplication.run(FullstackProsjektApplication.class, args); } + @Bean + CommandLineRunner run(RoleRepository roleRepository, UserRepository userRepository, PasswordEncoder encoder) { + return args -> { + // Exit early if DB already contains the admin user + if (roleRepository.findByAuthority("ADMIN").isPresent()) return; + Role adminRole = roleRepository.save(new Role("ADMIN")); + Role userRole = roleRepository.save(new Role("USER")); + + Set<Role> roles = new HashSet<>(); + roles.add(userRole); + User testUser = new User("test", encoder.encode("test"), roles); + + if(userRepository.findByUsername(testUser.getUsername()).isEmpty()) userRepository.save(testUser); + + roles.add(adminRole); + User admin = new User("admin", encoder.encode("password"), roles); + if(userRepository.findByUsername(admin.getUsername()).isEmpty()) userRepository.save(admin); + }; + } } \ No newline at end of file diff --git a/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/configuration/SecurityConfiguration.java b/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/configuration/SecurityConfiguration.java index 71e9d7febe2f7254cad33e89112e98e37136ac96..f273443e41288d46948b7c4ebd4a2dd143b57fd2 100644 --- a/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/configuration/SecurityConfiguration.java +++ b/FullstackProsjekt/src/backend/main/java/edu/ntnu/idatt2105/configuration/SecurityConfiguration.java @@ -76,7 +76,7 @@ public class SecurityConfiguration { return httpSecurity .csrf(AbstractHttpConfigurer::disable) .authorizeHttpRequests(auth -> { - auth.requestMatchers("/api/**", + auth.requestMatchers("/api/auth/**", "/v3/api-docs/", "/swagger-ui/").permitAll(); auth.anyRequest().authenticated(); diff --git a/FullstackProsjekt/src/frontend/src/api.js b/FullstackProsjekt/src/frontend/src/api.js index 82831c5921781ba6d3d74681f834800db527c57f..8e8aaf35e7e7cb51011777aaa92ffdd5bc05a7de 100644 --- a/FullstackProsjekt/src/frontend/src/api.js +++ b/FullstackProsjekt/src/frontend/src/api.js @@ -5,15 +5,15 @@ export const apiClient = axios.create({ baseURL: 'http://localhost:8080/api', //TODO: set api URL }); - +/* apiClient.interceptors.request.use( (config) => { const token = getToken(); if(token) { config.headers['Authorization'] = `Bearer ${token}`; - } + }else return config; }, (error) => { - return Promise.reject(error); -}); \ No newline at end of file + //return Promise.reject("Problem with token: " + error); +});*/ \ No newline at end of file