@GetMapping("/register") public String registerPage(Model model) { model.addAttribute("user", new UserDto()); return "registration"; // This corresponds to registration.html in templates folder } @PostMapping("/registrationPage") public String registerUser(@ModelAttribute("user") UserDto dto) { UserDetails details = User.builder().username(dto.getName()). password(new BCryptPasswordEncoder() .encode(dto.getPassword())) .roles("ROLE_USER").build(); repository.saveUser(details); return "success"; // This corresponds to success.html in templates folder (if you have one) } package com.ShelfSpace.ShelfSpace.model; public class UserDto { private String name; private String email; private String password; // Getters and Setters public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } package com.ShelfSpace.ShelfSpace.model; import java.util.List; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.ManyToMany; import jakarta.persistence.Table; import lombok.Data; @Entity @Data @Table(name = "shelfspace_user_role") public class UserRoleEntity { @Id @Column(name = "user_role_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private long roleId; @Column(name = "user_role") private String roleName; @Column(name = "user_role_id") @ManyToMany(mappedBy = "roles") private Listusers; } package com.ShelfSpace.ShelfSpace.repository; import java.util.Optional; import org.springframework.data.repository.CrudRepository; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Repository; import com.ShelfSpace.ShelfSpace.model.UserDto; import com.ShelfSpace.ShelfSpace.model.UserEntity; @Repository public interface UserRepository extends CrudRepository { Optional findUserByEmail(String email); void saveUser(UserDetails userDetails); } package com.ShelfSpace.ShelfSpace.service; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; public class UserService implements UserDetailsService { @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { // TODO Auto-generated method stub return null; } }