18

Я изучил использование Spring Security для аутентификации/авторизации моего веб-приложения (это будет основано на JDBC).Регистрация, создание и управление учетной записью пользователя Spring Security

Однако основной компонент, по-видимому, не учитывается с моей точки зрения. Как зарегистрировать/создать новых пользователей? Для этого существует API-интерфейс?

Мне нужно написать регистрацию пользователя и управление с нуля? Вещи, которые мне нужно сделать, включают в себя: - Регистрация нового пользователя - Сброс паролей - отправка по электронной почте пользователя для активации своей учетной записи - отправка пользователю по электронной почте для сброса учетной записи.

Заранее спасибо.

+0

http://stackoverflow.com/questions/23562266/create-account-forgot-password-and-change-password – OhadR

ответ

9

Я использую Spring Security для своего проекта. У рамки нет API для создания или регистрации пользователя по вашему запросу. Чтобы Spring Security была универсальной и пригодной для использования в нескольких фреймворках, она может занять вас до сих пор, прежде чем вам придется писать собственный код. Вы не можете получить более конкретный ответ о структуре или инструменте, потому что на данный момент вы просто будете использовать фреймворки, которые вы уже используете.

Если вы настроили его на использование пользователей и ролей в своей базе данных, со своего уровня доступа к данным вы должны создать запись в таблице пользователей или обновить пароль (предпочтительно, сохраненный как хэш) в этой записи. И, как сказал Аравинд, Весна дает email support.

Если вы действительно хотите увидеть один из способов сделать это: я использую Spring MVC, JSP и Hibernate. Я использую теги формы Spring в JSP для привязки новой пользовательской формы к объекту Person, и мой метод контроллера передает этот объект Person моему дао, чтобы он сохранял его.

Контроллер сигнатура метода выглядит следующим образом ...

@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(); 
} 
+1

Спасибо за информацию.Однако есть ли у вас рекомендации по API/Framework/Tool для обработки/регистрации пользователей за пределами весны? Или вы рекомендуете писать с нуля? –

+2

Да, я рекомендую вам написать его с нуля. Чтобы дать вам представление о том, сколько вам нужно писать, зарегистрировать нового пользователя, у меня может быть дюжина строк JSP, дюжина строк в контроллере Spring MVC и всего несколько строк в DAO. Spring Security доставит вам большую часть пути, вам нужно написать очень маленький код, чтобы закончить его. Причина, по которой API для работы с пользователями не существует, заключается в том, что вы будете использовать только те технологии, которые уже используются, например JSP или JSF, Hibernate или JDBC. – Jay

1

Насколько я знаю, Spring Security не имеет поддержки для создания и регистрации новых пользователей. Вам придется управлять этим самостоятельно. Однако у него есть поддержка по электронной почте. Проверьте here, чтобы узнать больше об этом.

+0

Спасибо за информацию. Однако есть ли у вас рекомендации по API/Framework/Tool для обработки/регистрации пользователей за пределами весны? Или вы рекомендуете писать с нуля? –

+0

Вы можете получить хорошие виджеты, созданные с помощью JQuery, и проиндексировать его с помощью Spring. Вы также можете создать свой Login на openid, но в конце концов ничего не приходит со встроенной функциональностью. Вам нужно будет его закодировать. - Aravind A 11 часов назад –

1

Посмотрите мой ответ here.

«Я реализовал проект Java для этого использования. Он открыт источника, на основе Spring-Security. Версия релиза на Maven-Central, так что вам не нужно скомпилировать его, но вместо этого вы можете получить , чтобы получить его как зависимость от вашего проекта! »

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