[英]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.