Spring Security用户帐户注册,创建和管理?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我一直在考虑使用Spring Security来验证/授权我的Web应用程序(这将基于JDBC)。

但是,从我的角度来看,似乎没有核心组成部分。我如何注册/创建新用户?有没有开箱即用的API?

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

提问于
用户回答回答于

我在我的项目中使用Spring Security。您所要求的框架没有用于用户创建或注册的API。Spring Security在多个框架中是通用和可用的,在编写自定义代码之前它只能带你到目前为止。

如果你已将其设置为在数据库中使用用户和角色,则可以在数据访问层中创建用户表中的记录或在该记录中更新密码(最好将其存储为散列)。Spring确实提供了电子邮件支持

如果你真的想看到一种方法:我使用Spring MVC,JSP和Hibernate。我在JSP中使用Spring的表单标签将新的用户表单绑定到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();
}
用户回答回答于

<dependency>
     <groupId>com.ohadr</groupId>
     <artifactId>authentication-flows</artifactId>
     <version>1.5.0-RELEASE</version> 
</dependency>

扫码关注云+社区