Как обращаться с привилегиями пользователя в весенней безопасности и внутри thyemeleaf - PullRequest
0 голосов
/ 24 февраля 2019

Я не новичок в java (я делал несколько проектов с javafx и jee), но я новичок во всей весне. Вот мой сценарий. Все пользователи имеют одинаковый уровень доступа, но некоторые имеют больший доступ ких роль в базе данных (может быть до 25! (да, это факториально) ролей, все они динамически создаются главным администратором).Мой шаблон состоит из 3 фрагментов (заголовок с административными ссылками, доступными для пользователей, связанных с их ролями, боковая панель, доступная для всех и нижний колонтитул). Поэтому я застрял в том, как создать глобальную переменную для части заголовка, чтобы проверить зарегистрированныйв пользователь на каждой странице загрузить и выбрать правильные ссылки, я знаю, как сделать это с Jee и JSP, но не с пружиной

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

1 Ответ

0 голосов
/ 25 февраля 2019

Используйте репозиторий и сохраняйте данные сеанса после входа в систему, как показано ниже

@Repository
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class LoginRepository {

    private String accessToken;  
    private String name;
    private String password;
    private String userId;
    private String rolename;
    private String department;
}

, затем используйте @ControllerAdvice, чтобы передать это в каждый Model

 @Autowired
    LoginRepository settings;
    @ModelAttribute
    public void addAttributes(Model model) {

            model.addAttribute("rolenamecode", settings.getRolename());
        .......

}

Затем на основе вашегороль или другие параметры (th:if) вы можете загрузить ссылки на вашей странице

...