Dodanie użytkownika do formularza ze Spring security

Dodanie użytkownika do formularza ze Spring security
MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Cześć

Mam zrobiony prosty system newsów z użyciem bazy danych mysql, który jest zabezpieczony za pomocą spring security. pola w bazie to ID | Tytuł | wiadomość, chciałbym dodać do tabeli jeszcze jedno pole o nazwie autor, które byłoby wypełniane automatycznie wartością nazwy użytkownika zalogowanego. To jedno pole dodałem w modelu natomiast nie wiem jak zrobić, żeby dodawało użytkownika, moglibyście mnie nakierować, nigdzie nie mogę znaleźć jak to zrobić. Z góry dzięki

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

Okej, już sobie poradziłem, tyle tego szukałem i nie mogłem znaleźć a po napisaniu posta jeszcze jedna próba i zadziałało, użyłem czegoś takiego w Service.

Kopiuj
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        String currentPrincipalName = authentication.getName();

        entity.setUser(currentPrincipalName);
        entity = repository.save(entity);
        return entity;
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

I cyk, już się nie da przetestować tego kodu inaczej niż integracyjnie, bo masz static call ;) Obiekt Authentication możesz dodać do kontrolera jako jeden z parametrów i Spring Security go ci tam wrzuci.

S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
1

@Shalom: to jedno, drugie że wartwa logiki nie powinna wiedziec o warstwie prezentacji/outputu. Nie powinno być żadnych rzeczy z http, soapami kafkami.
Choć trudno o CRUDZIE powiedzieć żeby miał logike :D

MA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0

dzieki za wskazówki, hmmm tylko po co ten sarkazm?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.