Użycie Spring Security w Spring Boot

Często przygotowując aplikację webową, chcemy posiadać sekcję, która będzie dostępna tylko dla zalogowanych użytkowników lub jakiś panel administracyjny, który pozwoli na zarządzanie stroną. Spring udostępnia gotowy mechanizm autentykacji i autoryzacji użytkowników, z którego możemy w łatwy sposób skorzystać. W poście postaram się pokazać jak w najprostszy sposób skonfigurować autentykację, czyli logowanie użytkownika do systemu. Kod, który używam, jest możliwie jak najprostszy. Pomijam tutaj używanie widoków i innych komponentów skupiając się tylko na tym, co jest niezbędne do rozpoczęcia pracy z security.

Czytaj więcej »Użycie Spring Security w Spring Boot

Spring Boot – Widoki

W poprzednich postach pisałem jak zacząć przygodę ze Spring Bootem oraz jak się połączyć z bazą danych. Dotychczas dane do przeglądarki zwracane były jako stringi. Jak już pewnie się domyślasz, istnieją lepsze sposoby, aby ładnie zaprezentować nasze dane, a do tego oddzielić logikę aplikacji od prezentacji.

Spring wspiera różne technologie widoków. Od tradycyjnych JSP (http://pl.wikipedia.org/wiki/JavaServer_Pages), do Themyleaf (http://www.thymeleaf.org/), Twig (http://twig.sensiolabs.org/, implementacja dla Javy JTWIG: http://jtwig.org/), FreeMarker, Groovy czy Velocity.

Widoki JSP mają kilka znanych ograniczeń, przez co powinny być unikane. Osobiście lubię widoki TWIG dlatego skupie się na nich, inne silniki szablonów implementuje się w analogiczny sposób.

Czytaj więcej »Spring Boot – Widoki

Spring Boot – Interakcja z bazą danych czyli Spring Data JPA

W poprzednim poście pokazującym jak zacząć ze Spring Bootem pokazałem jak stworzyć Hello World dla aplikacji web. Przyszedł czas aby do naszą aplikację połączyć z bazą danych. Będzie nam potrzebne kilka rzeczy:

  • Baza danych
  • Model – klasy POJO z adnotacjami które będą reprezentować schemat bazy danych (więcej o tym za chwilę)
  • Repozytoria – Klasy lub interfejsy które będą definiowały operacje które można wykonać na modelu (takie jak zapisanie obiektu w bazie, wyszukiwanie obiektów itp)

Mogą tutaj pojawić się elementy projektu które pokazywałem w poprzednim poście więc zachęcam do jego przeczytania. Zacznijmy po kolei.

Czytaj więcej »Spring Boot – Interakcja z bazą danych czyli Spring Data JPA
Spring Boot

Spring Boot – szybkie tworzenie aplikacji web w Javie

Stworzenie nawet prostej aplikacji w Javie zwykle bywa czasochłonne. Trzeba stworzyć dużo plików xml zawierających konfiguracje, która zazwyczaj jest taka sama lub bardzo podobna dla każdej aplikacji, następnie uruchamianie kontenera, deployowanie aplikacji i inne powtarzalne czynności. Jednak istnieje alternatywa którą jest Spring Boot!

Projekt ten powstał aby ułatwić wszystkim start ze Springiem, eliminuje potrzebę zabawy z tworzeniem konfiguracji xml-owej, gotową aplikację można stworzyć i uruchomić za pomocą jednej klasy. Idealnie nadaje się do projektów studenckich i szybkiego prototypowania aplikacji. Jedyne wymagania jakie stawia przed użytkownikiem to podstawowa znajomość Mavena.

Czytaj więcej »Spring Boot – szybkie tworzenie aplikacji web w Javie

Testy w Django z użyciem Selenium

Tworząc nawet najprostszą aplikację, bardzo szybko dochodzimy do momentu, w którym „przeklikanie” głównych ścieżek w aplikacji zaczyna być bardzo czasochłonne i nużące. Wprowadzenie nowych funkcji zaczyna być irytujące. Jest to szczególnie uciążliwe w interpretowanych językach, gdzie informację o ewentualnych błędach dostajemy dopiero po wejściu na stronę lub wykonaniu jakiejś akcji.

Kolejnym problemem jest gdy mamy do przejścia jakiś dłuższy scenariusz, aby sprawdzić jakąś funkcjonalność. Po kilku przejściach i rosnącym zdenerwowaniu, gdy funkcjonalność wciąż nie chce działać, sprawia, że pomijamy część elementów, które mogą mieć wpływ na działanie (lub niedziałanie). Takie scenariusze możemy mnożyć dowolnie. Dlatego warto zastanowić się nad zautomatyzowaniem takich powtarzalnych czynności. Do tego świetnie nadaje się biblioteka Selenium, która bardzo ułatwia testowanie z użyciem prawdziwej przeglądarki.

Czytaj więcej »Testy w Django z użyciem Selenium

Łączenie wielu plików w jeden na HDFS

Wiele małych plików na HDFS (Hadoop File System) możemy połączyć w jeden większy za pomocą komendy: hadoop fs -cat pliki_do_placzenia/*.csv | hadoop fs -put – polaczone_pliki.csv Musimy pamiętać, że odbywa się to sekwencyjnie, w jednym wątku, więc może to zabrać trochę czasu.

Pakowanie i rozpakowywanie plików z poziomu konsoli

Często zachodzi potrzeba obsługi archiwów z poziomu linii komend lub w jakimś skrypcie shellowym. Potrzebujemy spakować lub rozpakować pliki aby przykładowo szybciej je przesłać przez sieć. Z pomocą przychodzi nam program tar. Jednak nigdy nie mogę zapamiętać przełączników potrzebnych do poprawnego uruchomienia program. Który przełącznik odpowiada za jaki typ archiwów. Dlatego postanowiłem sobie zapisać to w poście, abym nie musiał się przekopywać przez dokumentację za każdym razem jak używam tara.

Czytaj więcej »Pakowanie i rozpakowywanie plików z poziomu konsoli

Facebook like – pobieranie ilości polubień przy pomocy PHP

Chciałbyś wyświetlać na swojej stronie ilość polubień i udostępnień swojej strony? Nic prostszego. Facebook udostępnia nam bardzo fajny mechanizm aby zdobyć te informacje. Wystarczy pobrać dokument XML podając w parametrze adres interesującej nas strony, a w odpowiedzi dostaniemy informacje na temat ilości polubień, udostępnień, komentarzy itp. Poniżej możecie zobaczyć kod który nam na to pozwoli.

Czytaj więcej »Facebook like – pobieranie ilości polubień przy pomocy PHP

Spring Boot i AngularJS – Prezentacja w ramach Sabre Academy

Prezentacja wygłoszona na Krakowskich uczelniach: Uniwersytet Jagielloński i Akademia Górniczo Hutnicza w ramach Sabre Academy. Pokazuje jak wykorzystać Spring Boot do stworzenia backendu aplikacji oraz AngularJS do wykonania Frontendu. Obie aplikacje komunikują się z użyciem RESTowego API.

Na prezentacji możesz zobaczyć w jaki sposób wykorzystać podstawowe elementy AngularJS, takie jak kontrolery, filtry, widoki, routing czy serwisy. W części backendowej – pokazuję jak użyć Spring Boot, jak wykorzystać Mavena do zbudowania projektu, jak wykorzystać model MVC, jak połączyć się z bazą danych, użyć embedded db h2, stworzyć RESTOWY endpoint który może zostać użyty do komunikacji przez Angulara.

Przykłady wraz z prezentacją znajdują się w githubowym repozytorium: https://github.com/mloza/Sabre-Academy. Samą prezentację można również pobrać tutaj: Wstęp do AngulaJS i Spring Boot.

Czytaj więcej »Spring Boot i AngularJS – Prezentacja w ramach Sabre Academy