Index: my-react-app/src/App.js
===================================================================
--- my-react-app/src/App.js	(revision a3d63eb126b369608e548cbf461b153cd008f391)
+++ my-react-app/src/App.js	(revision 303f51d28e3d4e22aa41fdc2d65d5a5b43bff676)
@@ -31,5 +31,5 @@
                     <Route path="/reservationConfirmation/:tableNumber/:timeSlot/:restaurantId" element={<ReservationConfirmation />} />
                     <Route path="/reservations/reservationEdit/:reservationId" element={<ReservationEdit />} />
-                    <Route path={"/login"} exact render={() => <LoginForm login={this.login}/>}/>
+                    <Route path="/login" element={<LoginForm/>}/>
                     <Route path="/error" element={<ErrorPage/>}/>
                 </Routes>
Index: my-react-app/src/components/Login.js
===================================================================
--- my-react-app/src/components/Login.js	(revision a3d63eb126b369608e548cbf461b153cd008f391)
+++ my-react-app/src/components/Login.js	(revision 303f51d28e3d4e22aa41fdc2d65d5a5b43bff676)
@@ -1,57 +1,62 @@
-import React, {useState} from 'react';
-import {useNavigate} from 'react-router-dom';
-const AUTH_TOKEN = 'auth_token';
+// Login.js
+import React, { useState } from 'react';
+import axios from 'axios';
+import {useNavigate} from "react-router-dom";
 
-const loginForm = (props) => {
-    const[auth, setAuth] = useState({});
+const Login = ({ onLogin }) => {
     const navigate = useNavigate();
+    const [credentials, setCredentials] = useState({ username: '', password: '' });
 
-    const login = (e) => {
-        const auth = {
-            "username":e.target.username.value,
-            "password":e.target.password.value
+    const handleChange = (e) => {
+        const { name, value } = e.target;
+        setCredentials({ ...credentials, [name]: value });
+    };
+
+    const handleSubmit = async (e) => {
+        e.preventDefault();
+        try {
+            const response = await axios.post('http://localhost:8080/api/login', {
+                email: credentials.username,
+                password: credentials.password
+            });
+            const { token } = response.data;
+            // Store token securely (e.g., using HTTP cookies)
+            localStorage.setItem('token', token);
+
+            navigate("/")
+        } catch (error) {
+            // Handle login failure
+            console.error('Login failed:', error);
         }
+    };
 
-        props.login(auth, (response) => {
-            debugger;
-            localStorage.setItem(AUTH_TOKEN, response.data)
-            navigate("/");
-        })
-    }
-
-    const onChangeHandler = (e) => {
-        const name = e.target.name;
-        const value = e.target.value;
-        setAuth({name:value});
-    }
 
     return (
         <div>
-            <form onSubmit={login}>
-                <div className="row form-group">
-                    <div className="col-md-6 font-weight-bold"> Корисничко име:</div>
-                    <div className="col-md-6">
-                        <input name={"username"} onChange={onChangeHandler} defaultValue={auth.username} type="text"
-                               className="form-control"/>
-                    </div>
+            <h2>Login</h2>
+            <form onSubmit={handleSubmit}>
+                <div>
+                    <label>Username:</label>
+                    <input
+                        type="text"
+                        name="username"
+                        value={credentials.username}
+                        onChange={handleChange}
+                    />
                 </div>
-                <div className="row form-group">
-                    <div className="col-md-6 font-weight-bold"> Лозинка:</div>
-                    <div className="col-md-6">
-                        <input name={"password"} onChange={onChangeHandler} defaultValue={auth.password} type="password"
-                               className="form-control"
-                               title="Лозинка"/>
-                    </div>
+                <div>
+                    <label>Password:</label>
+                    <input
+                        type="password"
+                        name="password"
+                        value={credentials.password}
+                        onChange={handleChange}
+                    />
                 </div>
-                <div className="col-md-12 text-right">
-
-                    <button type="submit" className="btn btn-primary" title="Зачувај">
-                        <i className="fa fa-fw fa-user"></i> Логин
-                    </button>
-                </div>
+                <button type="submit">Login</button>
             </form>
         </div>
-    )
-}
+    );
+};
 
-export default loginForm;
+export default Login;
Index: src/main/java/com/example/rezevirajmasa/demo/web/filters/AuthFilter.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/web/filters/AuthFilter.java	(revision 303f51d28e3d4e22aa41fdc2d65d5a5b43bff676)
+++ src/main/java/com/example/rezevirajmasa/demo/web/filters/AuthFilter.java	(revision 303f51d28e3d4e22aa41fdc2d65d5a5b43bff676)
@@ -0,0 +1,21 @@
+package com.example.rezevirajmasa.demo.web.filters;
+
+import jakarta.servlet.*;
+import jakarta.servlet.annotation.WebFilter;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springframework.context.annotation.Profile;
+
+import java.io.IOException;
+import java.util.logging.Filter;
+import java.util.logging.LogRecord;
+
+@Profile("servlet")
+@WebFilter(urlPatterns = "/*")
+public class AuthFilter implements Filter {
+    @Override
+    public boolean isLoggable(LogRecord record) {
+        return false;
+    }
+}
+
Index: src/main/java/com/example/rezevirajmasa/demo/web/rest/AuthController.java
===================================================================
--- src/main/java/com/example/rezevirajmasa/demo/web/rest/AuthController.java	(revision a3d63eb126b369608e548cbf461b153cd008f391)
+++ src/main/java/com/example/rezevirajmasa/demo/web/rest/AuthController.java	(revision 303f51d28e3d4e22aa41fdc2d65d5a5b43bff676)
@@ -1,9 +1,43 @@
 package com.example.rezevirajmasa.demo.web.rest;
 
+import com.example.rezevirajmasa.demo.model.Customer;
+import com.example.rezevirajmasa.demo.service.CustomerService;
+import org.apache.coyote.Response;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+@CrossOrigin(origins = "http://localhost:3000/")
 @RestController
 public class AuthController {
+    private final CustomerService customerService;
+    private final PasswordEncoder passwordEncoder;
+
+    public AuthController(CustomerService customerService, PasswordEncoder passwordEncoder) {
+        this.customerService = customerService;
+        this.passwordEncoder = passwordEncoder;
+    }
+
+    @PostMapping("/api/login")
+    public ResponseEntity<String> login(@RequestBody Customer customer) {
+        Customer exisitngCustomer = customerService.findByEmail(customer.getEmail());
+
+        if(passwordEncoder.matches(customer.getPassword(), exisitngCustomer.getPassword())) {
+            String token = generateToken(exisitngCustomer);
+            return ResponseEntity.ok(token);
+        } else {
+            return ResponseEntity.status(HttpStatus.UNAUTHORIZED).build();
+        }
+    }
+
+    private String generateToken(Customer customer) {
+        // Implement your token generation logic here
+        return "dummy_token";
+    }
 }
