/
NikolayVasiljev
/
Project
Обзор
Документация
Войти
/
NikolayVasiljev
/
Project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
feature
src/main/java/org/example/notesystem/controller/AuthController.java
72 строки
2 KB
VasiljevNik
My fourth commit
04 авг 2025, 16:30
04 авг 2025, 16:30
1d611e1
Код
Авторство
О чём код?
package org.example.notesystem.controller; import jakarta.servlet.http.HttpServletRequest; import org.example.notesystem.model.Role; import org.example.notesystem.model.User; import org.example.notesystem.repository.RoleRepository; import org.example.notesystem.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.Set; @Controller public class AuthController { @Autowired private UserRepository userRepository; @Autowired private RoleRepository roleRepository; @Autowired private PasswordEncoder passwordEncoder; @GetMapping("/") public String home(HttpServletRequest request) { if (request.getUserPrincipal() == null) { return "redirect:/register"; } return "login"; } @GetMapping("/login") public String login(HttpServletRequest request) { if (request.getUserPrincipal() != null) { return "redirect:/"; } return "login"; } @GetMapping("/register") public String registerForm() { return "register"; } @PostMapping("/register") public String registerUser(@RequestParam String username, @RequestParam String password, Model model) { if (userRepository.findByUsername(username) != null) { model.addAttribute("error", "Пользователь с таким именем уже существует"); return "register"; } User user = new User(); user.setUsername(username); user.setPassword(passwordEncoder.encode(password)); // Назначаем роль USER по умолчанию Role userRole = roleRepository.findByName("ROLE_USER"); user.setRoles(Set.of(userRole)); userRepository.save(user); return "redirect:/login"; } @GetMapping("/application") public String application(Model model, Authentication auth) { model.addAttribute("username", auth.getName()); return "application"; } }