/
evernotenkai
/
DataBaseXJavaProject
Обзор
Документация
Войти
/
evernotenkai
/
DataBaseXJavaProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/service/AuthService.java
54 строки
2 KB
Makson4ik
Весь проект с src db и прочим делом
12 май 2026, 22:43
12 май 2026, 22:43
431f4aa
Код
Авторство
О чём код?
package app.service; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import app.db.ConnectionManager; import app.model.UserSession; public class AuthService { private final ConnectionManager connectionManager; public AuthService(ConnectionManager connectionManager) { this.connectionManager = connectionManager; } public UserSession login(String login, String password) { String sql = "SELECT u.user_id, u.login, u.role, u.teacher_id, u.student_id, t.full_name AS teacher_name, s.full_name AS student_name " + "FROM users u " + "LEFT JOIN teachers t ON t.teacher_id = u.teacher_id " + "LEFT JOIN students s ON s.student_id = u.student_id " + "WHERE u.login = ? AND u.password = ?"; try (Connection connection = connectionManager.getConnection(); PreparedStatement ps = connection.prepareStatement(sql)) { ps.setString(1, login); ps.setString(2, password); try (ResultSet rs = ps.executeQuery()) { if (rs.next()) { UserSession session = new UserSession(); session.setUserId(rs.getInt("user_id")); session.setLogin(rs.getString("login")); session.setRole(rs.getString("role")); Object teacherId = rs.getObject("teacher_id"); if (teacherId != null) session.setTeacherId(((Number) teacherId).intValue()); Object studentId = rs.getObject("student_id"); if (studentId != null) session.setStudentId(((Number) studentId).intValue()); String teacherName = rs.getString("teacher_name"); String studentName = rs.getString("student_name"); String fullName = teacherName != null ? teacherName : studentName; if (fullName == null || fullName.trim().isEmpty()) { fullName = session.isAdmin() ? "Системный администратор" : session.getRoleLabel(); } session.setFullName(fullName); return session; } } } catch (Exception e) { throw new RuntimeException("Ошибка авторизации", e); } return null; } }