我一直在考虑使用Spring Security对我的web应用程序进行身份验证/授权(这将是基于JDBC的)。
然而,从我的角度来看,似乎遗漏了一个核心组件。如何注册/创建新用户?有没有一个开箱即用的API?
我是否需要从头开始编写用户注册和管理?我需要做的事情包括:-注册一个新用户-重置密码-给用户发电子邮件激活他们的帐户-给用户发电子邮件重置他们的帐户。
提前谢谢你。
发布于 2011-12-22 21:09:02
我在我的项目中使用Spring Security。框架没有您要求的用于用户创建或注册的API。为了让Spring Security具有通用性,并且可以跨多个框架使用,在您必须编写自定义代码之前,它只能带您走这么远。你不能真正得到关于使用框架或工具的更具体的答案,因为在这一点上,你将只使用你已经在使用的框架。
如果您已将其设置为使用数据库中的用户和角色,则可以从数据访问层在user表中创建一条记录或更新该记录中的密码(最好存储为散列)。正如阿拉文所说,Spring确实提供了email support。
如果您真的想知道一种方法:我使用Spring MVC、JSP和Hibernate。我在JSP中使用Spring的form标记将新的用户表单绑定到Person对象,控制器方法将该Person对象传递给Dao以持久化它。
控制器方法签名如下所示...
@RequestMapping(value = "/newUser", method = RequestMethod.POST)
public ModelAndView createNewUser(final @Valid @ModelAttribute Person user,
final BindingResult result,
final SessionStatus status,
final @RequestParam(value = "unencodedPassword", required = true) String password) {
...
user.getRoles().add(new Role(user, Role.APPLICATION_ROLE.ROLE_USER));
userDao.createNewUser(user);
...
}
我的PersonDao会使用Hibernate来持久化用户,如下所示
@Transactional
public void createNewUser(Person user)
{
Session session = sessionFactory.getCurrentSession();
session.save(user);
session.flush();
}
发布于 2011-12-22 14:38:56
据我所知,Spring Security没有内置对新用户创建和注册的支持。你将不得不自己处理这件事。然而,它确实有电子邮件支持。有关这方面的更多信息,请查看here。
https://stackoverflow.com/questions/8597902
复制相似问题