Mirki z #programista15k , wiem że "rychło w czas", ale mam budżet szkoleniowy do wydania do końca roku, a czasu na szkolenia brakuje ¯\_(ツ)_/¯ ... Podrzucicie mi, proszę, jakieś sensowne kursy, np. na #udemy (ale niekoniecznie), z tematów w stylu:
- zaawansowane rzeczy w #java
- zaawansowane rzeczy w #spring
- coś fajnego o JPA / #hibernate / Spring Data itd
-
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Jest sens używać WebClient, jeśli aplikacja stoi na servlecie i wszystkie inne operacje (np. na bazie) są blokujące? Kiedyś może i tak trzeba będzie przepisać wszystko na Reactive. Na początku klient chciał gRPC, ale ze względu na brak wsparcia zmienił na REST.

Generalnie to jeśli apka stoi na servlecie, to operacje są blokujące i raczej nie ma znaczenia, czy obsługą zapytań do zewnętrznych usług zajmie się WebClient, czy RestTemplate, czy nawet natywny HttpClient.
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SendMeAnAngel: sens używania jest taki, że Spring team sam oficjalnie mówi, że RestTemplate jest w maintenance mode i nie będą wspiera tego dalej (ostatecznie, w którejś wersji będzie już jako deprecated) i w tym momencie zalecanym jest używanie WebClienta zarówno w aplikacjach reaktywnych i niereaktywnych. Różnica jest tylko taka, że w przypadku aplikacji niereaktywnych webclient zachowa się identycznie jak resttemplate w przypadku .block().
  • Odpowiedz
Przypominam, że dziś o godzinie 19:00 spotykamy się na szkoleniu Live z Kubernetesem! W trakcie tego spotkania będziemy tworzyć deployment obiektów oraz wdrażać aplikację Spring Boot połączoną z bazą danych MySQL do klastra Kubernetesowego.

Niestety, dzisiejszy LiveStream będzie dość krótki, ponieważ OpenAI zrealizuje dużo roboty za nas - pokażę Ci jak to osiągnąć Dlatego tym bardziej zachęcam, bo nauczymy się dużo nowych rzeczy, a po szkoleniu każdy będzie w stanie wdrożyć swoje
SoftBull - Przypominam, że dziś o godzinie 19:00 spotykamy się na szkoleniu Live z Ku...
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SoftBull: byłem praktycznie do końca. Nie uszczegółowiłeś żadnego z wymienionych przeze mnie punktów, a jeżeli już jakiś z nich się pojawił to albo temat był poruszony bardzo pobieżnie, albo był przedstawiony w błędny sposób.
Pod koniec pojawiły się także smaczki typu "jeden Deployment z trzema ReplicaSet'ami", czy "Mam swoją domenę i nie ma portu, a strona działa". No działa, ale dlatego że port jest domyślny i jest podawany w sposób
  • Odpowiedz
Cześć Mireczki, mam pytanie odnośnie aplikacji w javie, którą tworzę. Mam wprowadzone spring security, mimo wielu przejrzanych tutoriali nie mogę poradzić sobie z implementacją ról i ustawieniami dostępu. Czy moglibyście spojrzeć na kod i pomóc? Czego mi brakuje? Podpowie ktoś?

Link do src: https://github.com/kaszaaa/ReimbApp/tree/main/src/main/java/com/revature

#programowanie #java #springboot #spring
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Natrafiłem na pewien problem podczas testowania i choć go rozwiązałem to dalej nurtuje mnie ciekawość w jaki sposób brać na warsztat podobne sytuacje. Mianowicie, pisząc unit testy w #spring chciałem przetestować serwis, w którym metoda tworzy w sobie obiekt, coś ala klasę konfiguracyjną/wrapper, ale go nigdzie nie zwraca na zewnątrz.

classA
foo(){
Object x = new Object()
x.setSomething(...)
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mojemirabelki:a dlaczego interesuje Cię co tworzy serwis? Ze strony unit testów wrzucasz do klasy jakiś input i dostajesz output. A to czy ta klasa coś sobie tworzy, nie jest ważne. Można zmienić implementację, żeby nie tworzyło tego obiektu a testy nadal powinny przechodzić
  • Odpowiedz
@MQs: akurat sprawdzałem czy plik konfiguracyjny odpowiednio poustawiał wartości w obiekcie mimemessage niezbędnym do wysyłania maili. Tak zachodzę w głowę jak inaczej miałbym to kontrolować poza jakimiś testami integracyjnymi. Przy ewentualnej podmianie takiego pliku co najwyżej wywali mi wyjątek lub testy, ale nie będzie sypać błędami.

W tym przypadku to widocznie moja nieuwaga, bo nie powinienem mockować takiego obiektu, a raczej sprawdzać czy taki wrapper go odpowiednio skonfigurował, co koniec
  • Odpowiedz
✨️Szkolenie Live: Kubernetes Dla Programistów!✨️

Kubernetes pozwala zautomatyzować proces wdrażania, skalowania i zarządzania skonteneryzowanymi aplikacjami. Dziś pokażę Ci jak zacząć z nim pracować, dlatego w trakcie szkolenia Live:
✅ Zaznajomię Cię z architekturą Kubernetesa - czym jest, jak działa, przybliżę kluczowe komponenty, oraz opowiem, jaka jest zasadnicza różnica pomiędzy Kubernetesem a Dockerem/Docker Compose.
✅ Pokażę Ci jak zbudować lokalne środowisko (narzędzia i oprogramowanie) do pracy z Kubernetesem.
✅ Wykonamy pierwsze wdrożenie aplikację internetową do klastra Kubernetesowego,
SoftBull - ✨️Szkolenie Live: Kubernetes Dla Programistów!✨️

Kubernetes pozwala zau...
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Cześć,

✨️ Z radością mogę powiedzieć, że Polska Społeczność doczekała się pierwszej polskiej publikacji na temat Spring Boota.
Osobiście zadbałem o to, aby Spring Boot: LiveBook wyróżniał się na tle innych publikacji innowacyjnością. A to co oferuje znacznie bardziej wykracza poza ramy tradycyjnych książek.

✅ Jako punkt pierwszy postawiłem na esencjonalność – LiveBook zawiera najważniejsze rzeczy, które przydadzą się każdemu, kto pracuje ze Spring Bootem. Dążyłem do wyeliminowania niepraktycznych lub rzadko spotykanych mechanik.
SoftBull - Cześć, 

✨️ Z radością mogę powiedzieć, że Polska Społeczność doczekała ...
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Icouldbeyourmom: Nie opracowywałem wersji elektronicznej. W pierwszej kolejności skupiłem się nad wersją papierową. Jak będzie zainteresowanie wersją elektroniczną i znajdę więcej czasu, to postaram się też wydać ebooka ( ͡~ ͜ʖ ͡°)
  • Odpowiedz
Mireczki mam problem z obsługą w spring boocie request z content-type jako application/x-www-form-urlencoded.
Posiłkując się tutorialem (punkt 4.1):
https://www.baeldung.com/spring-url-encoded-form-data

Przygotowałem identyczny endpoint (tak samo jest to post, ma analogicznie uzupełnione consumes, taki sam parametr metody czyli @RequestParam MultiValueMap paramMap).
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Macie jakiś pomysł, żeby Spring (Jackson) konwertował String na Instant / OffsetDateTime bez Z na końcu zamiast rzucać wyjątek, czy trzeba mu pisać ręcznie konwerter? Czasem w JSON przychodzi z Z, czasem bez Z. #spring #java
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@SendMeAnAngel: Najlepiej to byłoby wywalić opcję przychodzenia bez Z, bo to nie wiadomo wtedy z jakiej strefy czasowej przyszło. W praktyce "2022-11-08T21:37:21.370Z" i "2022-11-08T21:37:21.370" (bez Z) to dwie różne godziny w Polsce, w UK w czasie letnim zresztą pewnie też. Albo zamiast szlaczków brać goły timestamp ( ͡° ͜ʖ ͡°)
A jak nie da rady ustawić klienta, to szukałbym parserów pod hasłem ISO 8601
  • Odpowiedz
@SendMeAnAngel: opcja to własny mapper, który wpierw spróbuje skonwertować z patternem z 'Z', a później bez.
Jak json przychodzi z datą bez Z to nie trzyma się standardów. Łatasz dziurę nie tam, gdzie trzeba...
  • Odpowiedz
✨️Szkolenie Live: Wdrażamy Skonteneryzowane Appki Do Chmury!✨️

Z wykorzystaniem GitLaba zaprojektujemy scenariusz w ramach którego pobierzemy kod aplikacji Frontendowej (Angular) oraz Backendowej (Spring Boot) z repozytorium, przebudujemy go i stworzymy dla nich obrazy Dockerowe, które umieścimy w Container Registry. W finalnym etapie naszego scenariusza obrazy Dockerowe zostaną wdrożone i uruchomione na Cloud Hostingu!

Nowa edycja z myślą o osobach, które o nią dopytywały i w tym też @ArcadiusK
SoftBull - ✨️Szkolenie Live: Wdrażamy Skonteneryzowane Appki Do Chmury!✨️

Z wykorz...
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Architecture Deep Dive in Spring Security - Joe Grandja @ Spring I/O 2017

Talk sprzed 5 lat, ale dalej wszystko obowiązuje. Jak ktoś nadal ma problem z #spring security to w 50 minut będzie mógł nadrobić wszystko co widzieć powinien.

#java
whoru - Architecture Deep Dive in Spring Security - Joe Grandja @ Spring I/O 2017

...
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@whoru: W nowoczesnych aplikacjach biznesowych całość logiki, testowania, utrzymywania Spring Security zastępuje się stosowaniem gotowych, sprawdzonych komponentów pozwalając programistom głównie skupić się na tym co najważniejsze, czyli programowaniu logiki biznesowej. Z tego co zaobserwowałem przez ostatnie 2 lata, to od Spring Security się odchodzi a stosuje się gotowe komponenty na poziomie infrastruktury, k8s.
  • Odpowiedz
  • 2
@Young_Senior: masz racje, masz osobny serwis do tego na poziomie gatewaya na przykład. Mimo wszystko, dobrze w ogóle wiedzieć o co w tym wszystkim chodzi i znać mechanizmy według mnie.
  • Odpowiedz
Celem jest napisanie komunikacji z zewnętrzną usługą w imieniu konkretnego użytkownika. Czyli użytkownik loguje się w tej usłudze i wyraża zgodę na dostęp do swoich danych lub wykonywania pewnych czynności. Chodzi o coś takiego jak jest na Facebooku, kiedy zezwalasz innej aplikacji na dostęp do twojego konta. Potem aplikacja może sama uzyskać dostęp do usługi, mając ważny token.

1. jaki jest sens walidacji redirect URI?


@whoru: Integruję się z zewnętrzną usługą
  • Odpowiedz
@SendMeAnAngel: moim zdaniem za duży margines błędu dotyczący bezpieczeństwa jest używając Spring Security, jaka masz pewność że zabdasz o każdy corner case? Nie wiem jak to wygląda ale na AWSie już się nie używa Spring Security tylko korzysta z gotowych komponentów, tak samo z innymi rozwiązaniami jak istio ale szanuje za wytrwałość ( ͡° ͜ʖ ͡°)
  • Odpowiedz
✨️Szkolenie Live: Wdrażamy Skonteneryzowane Appki Do Chmury!✨️

Z wykorzystaniem GitLaba zaprojektujemy scenariusz w ramach którego pobierzemy kod aplikacji Frontendowej (Angular) oraz Backendowej (Spring Boot) z repozytorium, przebudujemy go i stworzymy dla nich obrazy Dockerowe, które umieścimy w Container Registry. W finalnym etapie naszego scenariusza obrazy Dockerowe zostaną wdrożone i uruchomione na Cloud Hostingu!

✅Dzięki temu osiągniemy w pełni zautomatyzowany proces w ramach którego:
Następuje budowanie i testowanie znajdującego się w repozytorium ➜ Tworzony zostaje obraz
SoftBull - ✨️Szkolenie Live: Wdrażamy Skonteneryzowane Appki Do Chmury!✨️

Z wykorz...

źródło: comment_1667156893tWqMG3b6uSnjW5SNK0R0xd.jpg

Pobierz
  • 1
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

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ć
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
Mireczki mam pytanie odnośnie ustawiania kolejności filtrów w spring boocie.
Mam zdefiniowany jeden filtr poprzez rozszerzenie klasy OncePerRequestFilter i tutaj spoko, w trakcie konfiguracji beana mogę ustawić sobie order i nawet działa.

Mam drugi bean (konfiguracja w application.properties) z logbookiem (do logowania requestów i responsów od zalando) który ma defaultowo najniższy priorytet (widać to po odpaleniu aplikacji z logowaniem na poziomie debug (logbookFilter urls=[/*] order=2147483647)

Problem w tym, że potrzebuję aby filtr z logbookiem uruchamiał
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Spring Security, demystified by Daniel Garnier Moiroux

Świetny talk z tegorocznego Devoxxa, dla tych co chcą sobie usystematyzować lub nabyć wiedzę od podstaw odnośnie Spring Security.


#spring #java #naukaprogramowania
whoru - Spring Security, demystified by Daniel Garnier Moiroux

Świetny talk z tego...
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach