Archiwa kategorii: Web

Jelastic – obiecujący hosting Java

Jeżeli kiedykolwiek poszukiwaliście dobrego hostingu umożliwiającego utrzymywanie aplikacji webowych napisanych w Javie (lub innym języku na bazie JVM) to wiecie, że znalezienie odpowiedniego rozwiązania jest niezwykle trudne. Ostatnio jednak natrafiłem na Jelastic. Jest to bardzo ciekawy projekt, obecnie utrzymywany w fazie beta testów, pozwalający na skonfigurowanie wysoce wydajnego i skalowalnego środowiska w kilka minut.  Czytaj dalej

Technologia dla startupu – może Java?

W ubiegłą niedzielę miałem okazję odwiedzić Startup Weekend w Krakowie, na którym drużyny złożone m.in. z programistów, grafików oraz specjalistów od marketingu pracowały pod okiem mentorów nad stworzeniem ciekawych, innowacyjnych projektów, które mogłyby odnieść sukces i wybić się spośród setek aplikacji powstających każdego dnia. Był to ostatni, trzeci dzień imprezy więc miałem możliwość przyjrzenia się projektom w bardziej zaawansowanej fazie.

Mówi się, że podstawą sukcesu jest pomysł. Dodałbym jednak, że każdy pomysł można zabić słabym wykonaniem. Jako osoba techniczna byłem szczególnie zainteresowany wykorzystywanymi technologiami, ich koegzystencją oraz procentowym udziałem Javy i technologii z nią powiązanych w rozwiązaniach wykorzystywanych do budowy startupów webowych. Poniżej znajdują się moje przemyślenia będące wynikiem rozmów z uczestnikami Startup Weekendu oraz obserwacji setek pomysłów zmaterializowanych w postaci aplikacji, które staram się śledzić na bieżąco.

Czytaj dalej

Maven, Eclipse i WTP

Każdy, kto miał okazję tworzyć aplikację internetową korzystając ze środowiska Eclipse, z pewnością kojarzy WTP – Web Tools Platform. Składa się on z wielu mniejszych podprojektów, jednak jednym z najbardziej rozpoznawalnych i najczęściej używanych jest Server Tools, czyli zbiór narzędzi wspomagających współpracę Eclipse’a z przeróżnymi serwerami. Dzięki niemu mamy możliwość dodania serwera do Eclipse’a za pomocą jednego z dostępnych connectorów, a następnie wygodnego deployowania i redeployowania aplikacji. Mały problem może się pojawić, kiedy nasz projekt jest projektem Mavenowym. Powodem kłopotów jest działanie pluginu m2eclipse, który przy tworzeniu projektu nie konfiguruje go do współpracy z WTP – nawet, jeśli wybraliśmy archetyp aplikacji webowej. Jest jednak na to lekarstwo, które demonstruję w poniższym videotutorialu. Zapraszam do oglądania!

AntiSamy – broń w walce z XSS

Na stronie OWASPu można znaleźć listę 10 najpoważniejszych zagrożeń dla aplikacji internetowych roku 2010. Drugie miejsce zajmuje XSS (Cross-Site Scripting). Najogólniej ten typ ataku można opisać jako osadzenie w treści atakowanej strony kodu, najczęściej Javascript, który przy wyświetleniu przez użytkowników, wykona niepożądaną przez nich czynność. Z charakterystyki tej wynika, że im większe możliwości edycji treści witryna daje swoim użytkownikom, tym większe ryzyko wystąpienia podatności na XSS. Co jednak, gdy chcemy stworzyć bardzo interaktywną aplikację? Jak można się zabezpieczyć? Odpowiedzią na te pytania jest AntiSamy – proste, ale zarazem bardzo skuteczne narzędzie rozwijane przez OWASP.

Czytaj dalej

JMeter – użycie klas Javy w teście

W napisanym niedawno artykule przybliżyłem proces tworzenia scenariusza testowego w narzędziu JMeter. Opisane były w nim najprzydatniejsze i najczęściej używane komponenty, oraz ogólne zasady korzystania z tej aplikacji. Dziś chciałbym temat rozwinąć i przedstawić technikę rzadziej używaną, ale w niektórych przypadkach niezastąpioną. Mowa o wykonywaniu kodu Javy z poziomu JMetera.

Czytaj dalej

Parsowanie liczb double już bezpieczne

Niedawno wspominaliśmy o głośnym ostatnimi czasy błędzie, który powodował wejście do nieskończonej pętli przy próbie parsowania niefortunnych liczb podwójnej precyzji. Najbardziej ucierpiały na tym aplikacje internetowe, z uwagi na znacznie ułatwione przeprowadzanie ataków typu DOS. Na szczęście Oracle stosunkowo szybko zareagowało na odkrycie poważnej luki w ich języku, skutkiem czego już dzisiaj można pobrać JDK i JRE w wersji 6u24, zawierające odpowiednią łatkę. Znaleźć je można standardowo na tej stronie.

JMeter – testujemy wydajność

Istnieje bardzo wiele rodzajów testów. Można dyskutować nad tym jak istotne są poszczególne ich typy, ale trudno nie zaliczyć testów wydajnościowych do grupy o wyższym priorytecie. Nabierają one jeszcze większego znaczenia w przypadku aplikacji internetowych, gdzie z kilku instancji korzystają rzesze użytkowników. Jednym z popularniejszych narzędzi służących do przeprowadzania tego rodzaju testów jest JMeter. Program ten napisany jest w 100% w Javie, dzięki czemu jesteśmy w stanie uruchomić go praktycznie na każdym systemie operacyjnym. Udostępnia także graficzny interfejs, który upraszcza tworzenie scenariuszy testowych. Celem tego artykułu jest przedstawienie głównych elementów budulcowych wspomnianego scenariusza, oraz demonstracja ich użycia.

Czytaj dalej

Detekcja typu plików z Apache Tika

Zdarza się, że aplikacja nad którą pracujemy wymaga od nas wykrycia formatu pliku bazując tylko na jego zawartości. Przykładem może być mechanizm kontroli typu uploadowanych danych działający odrobinę inteligentniej niż przez analizowanie rozszerzenia. Oczywiście jest to wykonalne dla większości popularnych formatów, które posiadają pewne stałe, charakterystyczne wzorce. Żmudne jednak byłoby budowanie bazy z takimi informacjami na własną rękę, a następnie implementowanie algorytmu, który ją wykorzysta. Na szczęście jedną z największych zalet Javy jest ogromna ilość gotowych framework’ów. Również w tym przypadku się nie zawiedziemy – do swojej dyspozycji mamy bowiem Apache Tika.

Czytaj dalej

Idealny framework webowy

Nie istnieje :) Jednak wielu programistów szuka rozwiązania jak najbardziej dostosowanego do swoich potrzeb. Na odbywającej się w listopadzie ubiegłego roku konferencji Devoxx odbyła się wyjątkowo ciekawa prezentacja, na której Matt Raible porównywał oparte o maszynę wirtualną Javy frameworki webowe. Prelekcja może okazać się niezwykle przydatna dla osób szukających najlepszego rozwiązania technologicznego dla nowego projektu.  Czytaj dalej

Spring Security – autoryzacja w aplikacji internetowej

W ostatnim wpisie traktującym o Spring Security poruszyłem temat uwierzytelniania, czyli weryfikacji tożsamości użytkownika na podstawie podanych przez niego informacji. Szczegółowo przedstawiłem proces implementacji tej funkcjonalności we własnej aplikacji, oraz poruszyłem parę kwestii dotyczących bezpieczeństwa przechowywanych w bazie danych haseł. To wszystko było jednak wstępem do tego, co na prawdę chcemy osiągnąć – kontroli dostępu do różnych obszarów aplikacji na podstawie przyznanych użytkownikowi w czasie uwierzytelniania uprawnień (granted authorities). Jest to proces tzw. autoryzacji użytkownika, i to jemu poświęcony jest ten artykuł.

Czytaj dalej