我尝试在 Google 中搜索,但我找不到任何使用数据库检查用户名和密码以进行身份验证的好的示例。
用更简单的话来说,我如何使用 Spring 和 Hibernate 而不是 SPRING SECURITY 创建一个简单的登录表单,其中使用数据库检查凭据。
请帮助我创建一个只有 Spring 3.0 而没有 Spring Security 3.0 的简单登录表单。谢谢。
我尝试在 Google 中搜索,但我找不到任何使用数据库检查用户名和密码以进行身份验证的好的示例。
用更简单的话来说,我如何使用 Spring 和 Hibernate 而不是 SPRING SECURITY 创建一个简单的登录表单,其中使用数据库检查凭据。
请帮助我创建一个只有 Spring 3.0 而没有 Spring Security 3.0 的简单登录表单。谢谢。
将登录表单发布到以用户名和密码作为参数的 Spring 控制器的最简单方法。
在控制器中,您可以执行任何您想要验证用户名和密码的操作。最好是委托给一些负责处理它的服务层。
如果成功通过身份验证,那么您想做什么?可能被重定向到主页。
现在主页渲染应该知道用户已经通过身份验证。这就是 Spring Security 提供帮助的地方。
但是您也可以通过编写一个 Servlet 过滤器来实现,在该过滤器中,您可以通过检查 http 会话来检查用户是否已经通过身份验证。当然,成功登录后,您需要将其存储在会话中,然后只有它可用于过滤器。
有许多其他方法可以实现相同的目标,这取决于您的要求以及需要哪种安全控制。
Your solution has two parts, one of which involves Spring and another that is your code:
// DAO returns null if no such username appears in the table.
String password = userDao.findPassword(username);
boolean isValidUser = (!password.equals(null));
// Write the code to implement behavior for valid and invalid users.
If you can do a database SELECT for a password, you can do Spring authentication without Spring Security.
You may need to put that logic in an aspect that's woven in before method calls.
You may want to cache that result in session and invalidate it if a timeout is exceeded.