簡體   English   中英

Spring Security用戶帳戶注冊,創建和管理

[英]Spring Security user account registration, creation and management

我一直在研究使用Spring Security來驗證/授權我的Web應用程序(這將是基於JDBC的)。

但是,從我的角度來看,核心組件似乎被排除在外。 如何注冊/創建新用戶? 是否有開箱即用的API?

我是否需要從頭開始編寫用戶注冊和管理? 我需要做的事情包括: - 注冊新用戶 - 重置密碼 - 通過電子郵件發送用戶激活他們的帳戶 - 通過電子郵件發送給用戶以重置他們的帳戶。

先感謝您。

我在我的項目中使用Spring Security。 根據您的要求,該框架沒有用於創建或注冊用戶的API。 為了使Spring Security在多個框架中具有通用性和可用性,在您必須編寫自定義代碼之前,它只能帶您到目前為止。 您無法真正獲得有關要使用的框架或工具的更具體的答案,因為此時您將只使用您已經使用的框架。

如果您已將其設置為在數據庫中使用用戶和角色,則可以在數據訪問層中在用戶表中創建記錄,或者在該記錄中更新密碼(最好存儲為哈希)。 正如Aravind所說,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();
}

看看我的答案在這里

“我已經為這個用例實現了一個JAVA項目。它是開源的,基於Spring-Security。發布版本在Maven-Central上,所以你不需要編譯它,而是你可以把它作為maven-獲取依賴於你的項目!“

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

據我所知,Spring Security並沒有內置對新用戶創建和注冊的支持。 您必須自己管理。 但它確實有電子郵件支持。 點擊此處了解更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM