From 496659a3e188c194edab1672a397944f9f0b48d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pesti=20Tam=C3=A1s?= <pesti.tamas@hallgato.ppke.hu> Date: Tue, 14 May 2024 17:43:29 +0200 Subject: [PATCH] Fix nginx API and CORS rules --- backend/src/main/java/hu/pazmany/security/CorsConfig.java | 7 +++++-- frontend/src/axiosConfig.js | 7 +++---- frontend/src/components/auth/Login.vue | 6 +++--- frontend/src/components/auth/Register.vue | 4 ++-- frontend/src/components/dogs/AddDog.vue | 4 ++-- frontend/src/components/dogs/AllDogs.vue | 4 ++-- frontend/src/components/dogs/EditDog.vue | 6 +++--- frontend/src/components/dogs/SingleDog.vue | 6 +++--- 8 files changed, 23 insertions(+), 21 deletions(-) diff --git a/backend/src/main/java/hu/pazmany/security/CorsConfig.java b/backend/src/main/java/hu/pazmany/security/CorsConfig.java index f1524f4..2123616 100644 --- a/backend/src/main/java/hu/pazmany/security/CorsConfig.java +++ b/backend/src/main/java/hu/pazmany/security/CorsConfig.java @@ -10,7 +10,10 @@ public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedOrigins("http://localhost/", "https://localhost/", "http://127.0.0.1/", "https://127.0.0.1/", "https://vau-vau.web.app/", "http://localhost:3000", "http://localhost:3001", "http://localhost:3002", "http://localhost:8080") + .allowedOrigins( + "https://vau-vau.web.app/", // from Firebase webapp frontend + "http://127.0.0.1:3000/", "http://localhost:3000/", // from nodejs frontend + "http://127.0.0.1/", "http://localhost/") // from nginx frontend .allowedMethods("*"); } -} \ No newline at end of file +} diff --git a/frontend/src/axiosConfig.js b/frontend/src/axiosConfig.js index 477d2dd..16a46d9 100644 --- a/frontend/src/axiosConfig.js +++ b/frontend/src/axiosConfig.js @@ -1,5 +1,4 @@ -import axios from 'axios'; +export {default as axios} from 'axios'; -axios.defaults.baseURL = 'http://localhost:8080'; - -export default axios; \ No newline at end of file +export const apiURL = 'http://localhost:8080/api'; // local development +// export const apiURL = '/api'; // nginx diff --git a/frontend/src/components/auth/Login.vue b/frontend/src/components/auth/Login.vue index 2b829c6..1c4f77e 100644 --- a/frontend/src/components/auth/Login.vue +++ b/frontend/src/components/auth/Login.vue @@ -24,8 +24,8 @@ </template> <script> -import axios from '@/axiosConfig.js'; -import {mapState} from "vuex"; +import { axios, apiURL } from '@/axiosConfig.js'; +import { mapState } from "vuex"; export default { name: 'Login', @@ -35,7 +35,7 @@ export default { methods: { async login() { try { - const response = await axios.post('/api/login', { + const response = await axios.post(apiURL + '/login', { username: this.username, password: this.password }); diff --git a/frontend/src/components/auth/Register.vue b/frontend/src/components/auth/Register.vue index ad3347e..1ba6333 100644 --- a/frontend/src/components/auth/Register.vue +++ b/frontend/src/components/auth/Register.vue @@ -19,7 +19,7 @@ </template> <script> -import axios from '@/axiosConfig.js'; +import { axios, apiURL } from '@/axiosConfig.js'; import { ref } from 'vue'; import { useStore } from 'vuex'; import { useRouter } from 'vue-router'; @@ -74,7 +74,7 @@ export default { const register = async () => { try { - const response = await axios.post('/api/register', { + const response = await axios.post(apiURL + '/register', { username: username.value, password: password.value }); diff --git a/frontend/src/components/dogs/AddDog.vue b/frontend/src/components/dogs/AddDog.vue index d745d9a..ec553fb 100644 --- a/frontend/src/components/dogs/AddDog.vue +++ b/frontend/src/components/dogs/AddDog.vue @@ -23,7 +23,7 @@ </template> <script> -import axios from '@/axiosConfig.js'; +import { axios, apiURL } from '@/axiosConfig.js'; import { mapState } from 'vuex'; export default { @@ -70,7 +70,7 @@ export default { const config = { headers: { Authorization: `Bearer ${this.token}` }, }; - await axios.post(`/api/newdog`, this.dog, config); + await axios.post(apiURL + '/newdog', this.dog, config); this.$router.push(`/dogs`); }, }, diff --git a/frontend/src/components/dogs/AllDogs.vue b/frontend/src/components/dogs/AllDogs.vue index f748aa2..149f325 100644 --- a/frontend/src/components/dogs/AllDogs.vue +++ b/frontend/src/components/dogs/AllDogs.vue @@ -20,7 +20,7 @@ <script> -import axios from '@/axiosConfig.js'; +import { axios, apiURL } from '@/axiosConfig.js'; export default { name: 'AllDogs', @@ -39,7 +39,7 @@ export default { }, async created() { try { - const response = await axios.get('/api/dogs', {timeout: 5000}); // 5 seconds timeout + const response = await axios.get(apiURL + '/dogs', {timeout: 5000}); // 5 seconds timeout if (response.status === 200) { if (response.data && response.data.length > 0) { this.dogs = response.data; diff --git a/frontend/src/components/dogs/EditDog.vue b/frontend/src/components/dogs/EditDog.vue index 0810ac2..2a907e5 100644 --- a/frontend/src/components/dogs/EditDog.vue +++ b/frontend/src/components/dogs/EditDog.vue @@ -35,7 +35,7 @@ </template> <script> -import axios from '@/axiosConfig.js'; +import { axios, apiURL } from '@/axiosConfig.js'; import { mapState } from 'vuex'; import vueFilePond from 'vue-filepond'; import FilePondPluginImagePreview from 'filepond-plugin-image-preview'; @@ -64,7 +64,7 @@ export default { console.log('FilePond has initialized'); }, async fetchDog() { - const response = await axios.get(`/api/dogs/${this.$route.params.id}`); + const response = await axios.get(apiURL + `/dogs/${this.$route.params.id}`); this.dog = response.data; }, validateAndEditDog() { @@ -117,7 +117,7 @@ export default { }; try { - await axios.post(`/api/dogs/${this.$route.params.id}/edit`, formData, config); + await axios.post(apiURL + `/dogs/${this.$route.params.id}/edit`, formData, config); this.$router.push(`/dog/${this.$route.params.id}`); } catch (error) { console.error('Error editing dog:', error); diff --git a/frontend/src/components/dogs/SingleDog.vue b/frontend/src/components/dogs/SingleDog.vue index 833ba9f..a4508b0 100644 --- a/frontend/src/components/dogs/SingleDog.vue +++ b/frontend/src/components/dogs/SingleDog.vue @@ -11,7 +11,7 @@ </template> <script> -import axios from '@/axiosConfig.js'; +import { axios, apiURL } from '@/axiosConfig.js'; export default { name: 'SingleDog', @@ -23,7 +23,7 @@ export default { async created() { const id = this.$route.params.id; try { - const response = await axios.get(`/api/dogs/${id}`); + const response = await axios.get(apiURL + `/dogs/${id}`); this.dog = response.data; } catch (error) { console.error(error); @@ -36,7 +36,7 @@ export default { const config = { headers: { Authorization: `Bearer ${this.token}` }, }; - await axios.delete(`/api/dogs/${this.$route.params.id}`, config); + await axios.delete(apiURL + `/dogs/${this.$route.params.id}`, config); this.$router.push(`/dogs`); } }, -- GitLab