首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Spring Security用户账号注册、创建和管理

Spring Security用户账号注册、创建和管理
EN

Stack Overflow用户
提问于 2011-12-22 07:56:05
回答 2查看 18.6K关注 0票数 19

我一直在考虑使用Spring Security对我的web应用程序进行身份验证/授权(这将是基于JDBC的)。

然而,从我的角度来看,似乎遗漏了一个核心组件。如何注册/创建新用户?有没有一个开箱即用的API?

我是否需要从头开始编写用户注册和管理?我需要做的事情包括:-注册一个新用户-重置密码-给用户发电子邮件激活他们的帐户-给用户发电子邮件重置他们的帐户。

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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以持久化它。

控制器方法签名如下所示...

代码语言:javascript
复制
@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来持久化用户,如下所示

代码语言:javascript
复制
@Transactional
public void createNewUser(Person user)
{
    Session session = sessionFactory.getCurrentSession();
    session.save(user);
    session.flush();
}
票数 9
EN

Stack Overflow用户

发布于 2011-12-22 14:38:56

据我所知,Spring Security没有内置对新用户创建和注册的支持。你将不得不自己处理这件事。然而,它确实有电子邮件支持。有关这方面的更多信息,请查看here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8597902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档