#springsecurity najlepsze najnowsze

SoftBull 2025-02-20 22:02:40 +1
🔐 Keycloak w Praktyce – Kontrola Dostępu Na Przykładzie Aplikacji Kryptowalutowej 📈
Już w poniedziałek, 24 lutego 2025, o 19:00!

💡 Chcesz zabezpieczyć swoją aplikację i skutecznie zarządzać dostępem użytkowników?
Podczas szkolenia stworzymy system do analizy rynku kryptowalut, w którym dostęp do funkcji będzie zależał od ról i uprawnień użytkownika!

Podczas szkolenia:
✅ Uruchomisz i skonfigurujesz Keycloak – od podstaw do wdrożenia.
✅ Zintegrujesz Keycloak ze Spring Boot i zabezpieczysz swoją aplikację.
✅ Zdefiniujesz role i uprawnienia, aby kontrolować dostęp do funkcji.
✅ Zbudujesz aplikację do analizy giełdy kryptowalut, w której autoryzacja użytkowników będzie kluczowa!

📅 Kiedy?
🗓 Poniedziałek, 24 lutego 2025
🕖 Godzina: 19:00 – 21:00 (online)

🔗 Zapisz się tutaj:
👉 https://eduflow.pl/zabezpieczanie-aplikacji-keycloak-24022025

#it #java #devops #programowanie #naukaprogramowania #backend #technologia #informatyk #ciekawostki #jvm #byczazagroda #framework #spring #springboot #security #springsecurity #bezpieczenstwo
Milo900 2025-02-20 22:17:08 +1
@SoftBull super
K.....z 2025-02-20 22:29:07 +1
@Milo900: mam wrażenie że oglądają to jakieś Janusze programowania i Halinki co angielskiego nie umieją bo tyle jest artykułów po angielsku i filmików o tym co on opowiada xDD
pokaż komentarze (1)
SoftBull 2025-02-06 20:17:48 +0
🔐 Logowanie Bez Hasła – One-Time Tokens w Spring Security! 🔐
Już w poniedziałek, 10 lutego 2025, o 19:00!

💡 Chcesz wdrożyć nowoczesne i bezpieczne uwierzytelnianie w swoich aplikacjach? One-Time Tokens pozwalają na logowanie bez haseł, eliminując ryzyko ich wycieku i ułatwiając użytkownikom dostęp do systemu.

Podczas szkolenia:
✅ Dowiesz się, jak działają One-Time Tokens i kiedy warto je stosować.
✅ Nauczysz się implementować logowanie bez hasła w aplikacji Spring Boot.
✅ Poznasz zalety i ograniczenia różnych metod uwierzytelniania, takich jak tokeny i biometryka.
✅ Weźmiesz udział w LiveCodingu, gdzie zbudujemy system logowania bez haseł krok po kroku.

📅 Kiedy?
🗓 Poniedziałek, 10 lutego 2025
🕖 Godzina: 19:00 – 21:00 (online)

🔗 Zapisz się tutaj:
👉 https://eduflow.pl/logowanie-bez-hasla-one-time-tokens-10022025

#it #java #programowanie #security #springboot #backend #springsecurity #bezpieczenstwo #naukaprogramowania #byczazagroda
SendMeAnAngel 2022-10-31 14:11:06 +0
Kolejny raz przekonuję się, że Spring Security to kombajn, w którym teoretycznie każdy komponent można podmienić, ale są tak ze sobą powiązane, że chcąc coś zrobić inaczej, trzeba przepisać połowę komponentów.

Udało mi się nieco okiełznać klienta OAuth2:

1. Tworząc filtr, który na podstawie nagłówka X-USER-ID utworzy obiekt Authentication - otóż SS nie akceptuje anonimowych klas Authentication ani jak przekażemy principal w formie ciągu znaków przy ręcznym utworzeniu OAuth2AuthorizeRequest.

2. Dostosowując aplikację do Redirect URI (niestety jest on weryfikowany w usłudze, z którą się łączę i nie mogę zmienić) - otóż SS weryfikuje go w OAuth2AuthorizationCodeGrantFilter i jeśli się nie zgadza, to zamiast strzelić po token, to od nowa przekierowuje do serwera uwierzytelniania. No i jak tu robić testy na różnych środowiskach, w których adres będzie się trochę różnił? No ostatecznie można nadpisać OAuth2AuthorizationCodeGrantFilter i wyrzucić weryfikację Redirect URI.

3. Jeśli stworzę filtr, który podmieni Redirect URI w zapisanym w sesji requeście, to błędny Redirect URI pójdzie w strzale po token i zwróci błąd.

4. Można też podmienić HttpSessionOAuth2AuthorizationRequestRepository, żeby requesty trzymał w bazie, a nie w sesji (bo co w przypadku wielu instancji aplikacji, które będą mieć osobne sesje?)

5. Żeby spring użył Authorization Code with PKCE, to trzeba usunąć z konfiguracji client-secret i ustawić client-authentication-method: NONE

6. Aby przechowywać tokeny w bazie, to jest o tym sekcja w dokumentacji, więc nie będzie z tym dużego problemu - a może będzie, bo nie używam relacyjnej bazy, lecz NoSQL - do sprawdzenia, czy zadziała z taką bazą (wymóg klienta)

Czyli tak w skrócie z czym mam problem:

1. Weryfikacja Redirect URI w SS - można to obejść jak wyżej
2. Aplikacja może mieć wiele instancji i jedna może przekierować użytkownika, a druga strzelać po token - patrz pkt 4 wyżej

Nie wiem, czy dalej w to brnąć, czy pisać własną implementację OAuth. Nie jest to trudne, ale trzeba ręcznie dbać też o odświeżanie tokenów. Zamiast filtrów SS miałbym konkretny endpoint, w którym zawarłbym logikę i przynajmniej bym wiedział, co się dzieje.

#spring #springsecurity #java #programowanie
whoru 2022-10-31 14:31:14 +0
@SendMeAnAngel:

1. jaki jest sens walidacji redirect URI?
2. nie wiem co do końca chcesz osiągnąć taką implementacją, ale chyba idziesz w aplikację stateful zamiast stateless

Szanuję za wytrwałość, ale obawiam się, że większość rzeczy, o których piszesz SS od wersji 5.0 rozwiązuje out-of-the-box
retardo 2022-10-31 14:33:09 +0
@SendMeAnAngel: albo źle zrozumiałem ale mam wrażenie że mocno tu wszystko przekombinowane.
Po co trzymać requesty i tokeny w bazie? Nie korzystasz z profili z odpowiednią konfiguracją pod środowisko, a w ogóle to musisz wadlidować redirect?
pokaż komentarze (4)
SendMeAnAngel 2022-10-27 15:37:22 +0
Robił ktoś uwierzytelnianie OAuth2 do zewnętrznych usług w #springboot z użyciem #springsecurity i komuś to działało? Standardowy URL /oauth2/authorization/nazwauslugi nie działa, a ręczne wywołanie authorize() rzuca wyjątek "Authorization required for Client Registration Id: nazwauslugi" - wygląda na to, że odpowiednie filtry nie są wywoływane (np. OAuth2AuthorizationRequestRedirectFilter). A tak w ogóle to szukam jakiejś lekkiej biblioteki bez integracji ze Spring Security. Chodzi o to, żeby użytkownik mógł się połączyć z zewnętrznymi usługami tak jak na Facebooku np. ze Stravą. #spring #java #oauth
whoru 2022-10-27 16:34:57 +1
SendMeAnAngel 2022-10-28 11:43:20 +1
@PaaD: @whoru: @srgs: @retardo: udało się, gryzły się 2 klasy z metodą configure(HttpSecurity http) i w efekcie tworzyły się 2 łańcuchy filtrów dla SS, a tylko pierwszy był uruchamiany, teraz trzeba zmusić SS, by wysyłał odpowiednie żądanie do serwera uwierzytelniania
pokaż komentarze (8)
Yeboy 2022-10-18 11:45:32 +0
Mireczki,

Uczę się podstaw Spring Security w projekcie odpalonym na Spring Boocie i mam jedno pytanko.

Czy możliwe jest utworzenie dodatkowego filtra, który sprawdzałby przy autentykacji, czy dany USER ma konto 'ACTIVE'?

Coś jak 'hasRole' lub 'hasAnyRole' i tutaj dla roli mam ADMIN, USER, SUPPORT itd.

I teraz dla konta mam 3 enumy określające status konta: 'CREATED', 'ACTIVE', 'DELETED'.

Przykładowo, jeśli użytkownik stworzy konto, to np. może sobie na forum przejrzeć posty, ale nie może żadnego dodać lub skomentować, dopóki jego konto nie zostanie jakoś tam aktywowane.

Jak mogę do tego podejść?

Przy danym endpoincie w samej klasie controllera lub w klasie SecurityConfi chciałbym móc dodać coś ala "hasAccountStatus()".

#java #springboot #springsecurity
whoru 2022-10-18 11:55:41 +1
srgs 2022-10-18 11:57:03 +1
@Yeboy: popatrz w preauthorize tam masz dostep do calego principala
pokaż komentarze (1)
dzimen 2022-05-28 16:45:57 +0
#java #springboot #oauth2 #deeplink #springsecurity

Cześć Mirki,

Mam pewien problem w aplikacji Spring Boot.

Dodałem do Spring Security OAUTH2 i ustawiłem wszystkie rzeczy związane z Google i Facebook.
Przy próbie logowania przez Facebook i po poprawnym logowaniu przeglądarka cały czas pobiera mi plik zamiast przekierować do /api/auth/success tak jak w przypadku google.

Na screenie przesyłam ustawienia Facebook i Spring Security. Dodatkowo jak zrobić z REST API deep link do aplikacji react native na android i iOS bo obecnie otwiera się webview i po poprawnym logowaniu chciałbym przekierować użytkownika do aplikacji.

Z góry dziękuje za pomoc
dzimen 2022-05-28 16:46:15 +0
Andrzejuniedenerwuj 2021-07-02 22:35:07 +0
#programowanie #java #spring #springsecurity #programista15k

Mirki jak wymusić w springu żeby przy autoryzacji zwracał mi ciasteczko z atrybutem Secure? Próbowałem kilka rozwiązań ze stacka i albo coś przeoczyłęm albo czegoś nie rozumiem. Na obecną chwilę ciastko wygląda tak 'JSESSIONID = ;Path=/';HttpOnly'.
j.....6 2021-07-02 22:55:58 +0
@Andrzejuniedenerwuj: Oj nie uważało się na bootcampie, co? ( ͡° ͜ʖ ͡°)
pokaż komentarze (1)
infamia 2020-01-14 16:04:45 +0
#java #naukaprogramowania #spring #springboot #springsecurity #angular #typescript spring security serwis angular Hej mam w swojej apce, zrobuione logowanie za pomocą loginForm() jak w postmanie wysyłam POST na /login?username=user&password=user to poprawnie mnie loguje, ale jak próbuje wysłać posta za pomocą serwisu w Angularze to wysyła się tylko OPTIONS i zwraca 403, domyślam się że chodzi o CORS ale w security configuration mam go wyłączonego, ktoś wie jak rozwiązać ten problem ?
tempname0626 2020-01-14 16:06:44 +0
@infamia: ten options to jest preflight request
tempname0626 2020-01-14 16:09:48 +1
@infamia: nie zdążyłem edytować:
angular pewnie bije z innego adresu niż stoi twój serwer i Twoje security blokuje options na tym styku.

1. W security dodaj .cors().disable() [czy jakos tak]
2. Reverse proxy
3. Spermituj wszystkie options
4. Poprawnie zkonfiguruj cors
pokaż komentarze (6)
Algeroth 2019-04-02 21:14:07 +0
Mireczki, mógłby ktoś rozwiązać moje wątpliwości w kwestii ldap + spring security?
Nigdy się nie integrowałem z ldapem w kwestii logowania, a w planach jest przejście z jwt na ldapa. Z tego co rozumiem, to ldap dostarcza gotową bazę użytkowników, co za tym idzie odpada proces rejestracji. Jak to się ma do encji systemowych typu User, skoro nie ma procesu rejestracji czyli tworzenia tego usera, a w logice biznesowej potrzebuje tego usera np do faktur czy danych dot. tego usera? Czy w tym przypadku po bezpośrednim zalogowaniu poprzez ldapa należałoby sprawdzić czy w systemie istnieję User o takim uid czy nazwie, a jeśli nie to go stworzyć o określonych rolach na podstawie danych z ldapa?

#programowanie #java #spring #springsecurity #ldap
Smevios 2019-04-02 22:11:57 +1
@Algeroth: generalnie tak, w aplikacji masz encje User ktora jest migawka danych z ldapa (z security same role), ale to ldap odpowiada za auth.

Tylko pamietaj, ze masz case:
1. nie masz jeszcze => utworz
2. juz masz => mozliwa aktualizacja


btw. my szlismy w rozwiazanie tego za pomoca jobow (a nie synchronizacji przy logowaniu, bo moglismy sobie pozwolic ze jakis pracownik ma przestarzale dane przez jakis czas) ktore pobieraja wszystkich uzytkownikow z ldapa kilka razy dziennie (+ trigger ktory wymusza aktualizacje) i dla kazdego uzytkownika z ldapa:
1. jezeli jeszcze nie masz Usera dla takiego wpisu w ldapie => utworz
2. jezeli jest => sprawdz czy sie cos nie zmienilo (np. nazwisko, pozycja etc)
3. przy okazji zapamietujesz wszystkie wpisy z ldapa i na koniec porownujesz je z tym co masz w bazie, bo moze kogos wywalili/nie bedzie ci zwracany bo ktos przestal pracowac (chcielismy markowac osobe ktora juz nie pracuje)


Z doświadczenia, jako że ldap przyjmie "wszystko" to uważajcie na:
- literówki w pozycjach pracowników (żeby nie było zdziwienia że w enumie nie ma wartości)
- nulle w takich rzeczach jak imiona etc
- b----l w sytuacjach ktoś pracował, przestał i pracuje znowu (w ldapie mozna to handlowac na 2 sposoby)
Algeroth 2019-04-03 08:45:11 +0
@Smevios i o taki wykop walczyłem! Dziękuję pięknie! ;)
Roballo 2016-12-07 12:22:22 +2
Mireczki potrzebuje porady. Chce zrobić aplikacje w springu z REST API, ale nie wiem jak się zabrać za zabezpieczenia w owej. Myślałem nad tokenami, że wraz z prośbą o jakieś informacje klient by wysyłał token tylko czy to ma sens? Może inaczej się to robi?

Ogółem użytkownik będzie zalogowany i miałby trzymać owy dopóki on nie wygaśnie/wyloguje się.

#java #spring #springsecurity
saquas 2016-03-22 20:11:45 +1
Mam parę pytań odnośnie #spring i #springsecurity. Może ktoś będzie w stanie mi pomóc. Mam apkę w androidzie, do której chcę dorobić autoryzację używając #oauth z #googleapi. Następnie na podstawie access token'u, wysyłanego do springowego controller'a #rest chcę zrobić walidację tego tokenu. Myślałem o użyciu #springsecurity jednak nie do końca wiem jak miała by wyglądać autoryzacja w tym momencie. Stąd pytania: czy mogę w każdym requeście do spring dodać header z access token'em i na jego podstawie sprawdzać, czy użytkownik zalogował się w apce? Jest to bezpieczne rozwiązanie? Jeżeli tak to jak mniej więcej by wyglądała konfiguracja spring security. Zakładam, że musiałby być jakiś filtr, w którym następowałaby walidacja tokenu i ewentualne "zalogowanie" użytkownika. Ma ktoś może jakiś przykład takiego schematu, próbowałem googlać, ale większość przykładów to jest logowanie na zasadzie formularza.