Spring Boot:Web应用开发之登录与退出的实现
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Controller
public class LoginController {
@GetMapping("/login")
public String loginForm() {
return "login"; // 返回登录页面
}
@PostMapping("/login")
public String login(@RequestParam String username,
@RequestParam String password,
RedirectAttributes redirectAttributes) {
// 假设我们有一个安全服务来验证凭据
boolean authenticated = SecurityService.authenticate(username, password);
if (authenticated) {
// 登录成功,重定向到主页
return "redirect:/";
} else {
// 登录失败,添加错误消息并重新显示登录表单
redirectAttributes.addFlashAttribute("error", "登录失败");
return "login";
}
}
@GetMapping("/logout")
public String logout() {
// 假设我们有一个安全服务来处理注销逻辑
SecurityService.logout();
// 注销成功,重定向到登录页面
return "redirect:/login";
}
}
// 安全服务类(示例,需要根据实际应用实现)
class SecurityService {
public static boolean authenticate(String username, String password) {
// 这里应该是安全验证的逻辑,比如与数据库比对用户名密码
return "user".equals(username) && "pass".equals(password);
}
public static void logout() {
// 这里应该是注销用户的逻辑,比如清除安全上下文等
}
}
这个简单的例子展示了如何在Spring Boot中实现一个基本的登录和注销功能。在实际应用中,你需要根据自己的安全配置和数据库实现来替换SecurityService
中的方法。
评论已关闭