Внедрение единой роли Spring Security - PullRequest
0 голосов
/ 03 июня 2018

Я работал над мини-проектом с весенней загрузкой и застрял в этой части.

Таким образом, наш проект может содержать много пользователей, но каждый пользователь может иметь только одну роль

Есть три роли:

  • ТРЕНЕР
  • ФАСИЛИТАТОР
  • АДМИН

ERD включены:

ERD

Мой вопрос заключается в том, могу ли я реализовать регистрацию и авторизацию безопасности Spring на основе моего ERD, потому что из того, что я видел из учебных пособий в Интернете, многомного отношений между пользователем и субъектом роли или моя ERD неверна?

Надеюсь, кто-то сможет меня просветить.

1 Ответ

0 голосов
/ 03 июня 2018

Да, вы можете.

  1. Создать свою собственную реализацию Authentication
  2. Интерфейс определяет метод getAuthorities().Он возвращает Collection, но вам решать, как вы его реализуете.
  3. Убедитесь, что ваш фильтр входа в систему (или какой-либо другой механизм аутентификации, который у вас есть) возвращает ваш пользовательский AuthenticatedUser (вместо * 1012).* вы можете найти в примерах)

Пример:

public class AuthenticatedUser implements Authentication{
    private User user;
    public AuthenticatedUser(User user){
        this.user = user;
    }
    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {
        return Arrays.asList(new SimpleGrantedAuthority(user.getRole()));
    } 
    // rest of the code omitted
}

Я не уверен, что понимаю вашу ссылку на регистрацию - регистрация пользователя обычно является пользовательской реализацией в любом случае;у вас не должно быть проблем там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...