管理员与员工认证模块开发
完成管理员和员工的注册登录功能开发,耗时 1 天,剩余 9 天。实现了以下核心功能:
设计用户实体类User,通过枚举Role区分管理员(ADMIN)和员工(EMPLOYEE)角色。
开发用户服务UserService,包含注册(register)和登录(login)逻辑,校验用户名唯一性和密码正确性。
实现认证控制器AuthController,处理登录、注册请求,并根据角色跳转不同页面。
编写前端登录页(login.html)和注册页(register.html),采用响应式设计和表单验证。
遇到的困难
角色权限控制:首次设计时未明确角色跳转逻辑,导致登录后统一跳转至首页。通过在会话中存储用户角色,在控制器中添加条件判断(如if (user.getRole() == User.Role.ADMIN))解决。
密码安全:初始版本直接存储明文密码,后续需集成 Spring Security 加密(如 BCrypt),当前暂用明文作为演示。
今天的任务(第 2 天)
开发课程管理模块的实体类和数据访问层,设计课程表Course和员工课程关联表EmployeeCourse。
实现课程的增删改查功能,重点关注关联表的双向映射配置。
核心代码示例
用户实体类(User.java)
@Entity
@Table(name = "user")
public class User {
public enum Role { ADMIN, EMPLOYEE }
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(unique = true)
private String name;
private String password;
@Enumerated(EnumType.STRING)
private Role role;
// 构造方法、getter/setter省略
}
登录控制器(AuthController.java)
@PostMapping("/login")
public String login(@RequestParam String name,
@RequestParam String password,
HttpSession session, Model model) {
try {
User user = userService.login(name, password);
session.setAttribute("user", user);
if (user.getRole() == User.Role.ADMIN) {
return "redirect:/admin/dashboard";
}
return "redirect:/employee/dashboard";
} catch (Exception e) {
model.addAttribute("error", e.getMessage());
return "login";
}
}
登录页面(login.html)