poniedziałek, 7 września 2009

Spring Security + Tomcat + Kerberos/NTLM

Jakiś czas temu wspominałem o udanym uruchomieniu autoryzacji z wykorzystaniem Kerberosa w aplikacji używającej Spring Security uruchomionej na Apache Tomcat. W tym celu wykorzystałem bibliotekę napisaną przez Dominique Guerin. Dostępna jest na tomcatspnego.codeplex.com. Na tej samej stronie znajdziecie prosty przykład współpracujący właśnie z Spring Security mojego autorstwa. W razie pytań służę pomocą.

niedziela, 6 września 2009

Moje początki z Grails

Od pewnego czasu śledziłem z zainteresowaniem wpisy Jacka Laskowskiego oraz Mateusza Mrozewskiego na temat Grails. W końcu przyszedł czas żeby samemu spojrzeć na nie z bliska :) Książkę "Begining Groovy and Grails" zmieliłem błyskawicznie. Super napisana - czyta się łatwo i przyjemnie. Do tego uwypuklone zaskakujące możliwości Grooviego oraz Grailsów przekonywały mnie, że był to dobry krok.
W końcu przyszedł czas na sprawdzenie w praktyce jak to wszystko działa. Postanowiłem przepisać na Grailsy i trochę rozbudować to co przygotowałem jakiś czas temu w PHP - http://motorowodne.zapisy.net/. Proste, a jednak pozwalające na sprawdzenie kilku rzeczy. Jestem po dłuższej chwili zabawy. Pierwsza rzecz, która mnie zatrzymała to walidator dla numeru PESEL. Skończyło się na chwilę obecną na takim kawałku kodu:


Mam wrażenie, że da się to dość mocno zwinąć. Jakieś podpowiedzi?
Kolejną rzeczą, która mi zabrała chwilę to testy jednostkowe walidatorów. Jeżeli staniecie przed tym problemem to bez lektury na temat mockForConstraintsTests nie posuniecie się dalej. To tyle na dzisiaj :)

czwartek, 6 sierpnia 2009

Kerberos. Nareszcie działa!

Ostatnio dużo czasu poświęciłem Kerberosowi. Dokładnie mówiąc celem moich prac było uruchomienie Tomcata wraz z Kerberosem w łatwy, szybki i przyjemny sposób. Po niezliczonej liczbie prób, załamań, ślepych zaułków udało mi się to uruchomić. Żeby nikt więcej nie musiał przez to przechodzić to krótko o moich doświadczeniach.
Jeżeli Tomcat pracuje na Linuksie w miarę bezproblemowo uruchomiłem Apache + mod_auth_kerb + Apache Tomcat. Mając to skonfigurowane myślałem, że jest po sprawie. Przecież Apache jest też dla Windowsa, więc przeniosę konfigurację 1:1...
Gdybym wtedy wiedział jak mocno się myliłem. Okazało się, że nikomu (albo nikt się nie pochwalił) nie udało się skompilować/uruchomić mod_auth_kerb pod Windowsem. I tu zaczęły się schody.
Na szczęście znalazłem świeżuteńki projekt tomcatspnego (autor: Dominique Guerin). O dziwo zadziało praktycznie od palca, no może z niewielkimi trudnościami.
Podsumowując, uważam że takie rozwiązanie jest (przynajmniej w moim przypadku) najlepsze:
  • serwer na Linuksie: Apache (mod_auth_kerb) + Apache Tomcat
  • serwer na Windowsie: Apache Tomcat + tomcatspnego
Mam przygotowany mały, przykładowy projekt pokazujący wykorzystanie tomcatspnego wraz ze Spring Security. Postaram się wkrótce opisać sposób konfiguracji i załączyć źródła. Będę też musiał odtworzyć procedurę konfiguracji mod_auth_kerb więc ją też z pewnością opisze. Tak więc spodziewajcie się wkrótce jeszcze dwóch postów o kerberosie :)

piątek, 31 lipca 2009

Java, wyrażenia regularne i "\"

Mamy ciąg znaków, żeby daleko nie szukać NAZWADOMENY\uzytkownik. Chcemy podzielić go względem "\". Jeżeli się wie jak to jest w miarę prosto :)
Dlaczego aż cztery "\"?
Jak pamiętamy (lub sprawdzimy w Java API) split przyjmuje jako parametr wyrażenie regularne. W wyrażeniach regularnych "\" jest znakiem "specjalnym". Dlatego:
  • \ - w Javie jest to escape character (tłumaczenia na polski nie pasują mi...)
  • \\ - mamy już naszego backslasha w wyrażeniu regularnym, ale w nim jest on właśnie escape character ;) dlatego potrzebujemy jeszcze jednego backslasha
  • \\\\ - w wyrażeniu regularnym będzie to \\ a więc \ :)
Uf...

środa, 29 lipca 2009

Przydatne narzędzia przy tworzeniu stron WWW

Natknąłem się dzisiaj na wykaz wyjątkowo ciekawych narzędzi, które się przydadzą każdemu kto od czasu do czasu musi zrobić coś większego korzystając z HTML i CSS. Te, które wydają się najbardziej przydatne z moojego punktu widzenia to:
  1. Typetester - testowanie różnych krojów i stylów tekstu. Trzy teksty obok siebie pozwalają na łatwy wybór najlepszego rozwiązania.
  2. CSS Type Set - wklejamy tekst i za pomocą wygodnego interfejsu modyfikujemy jego wygląd.
  3. HTML-ipsum - w przeciwieństwie zwykłego generatora Lorem ipsum generuje przykładowe teksty w formie: długich i krótkich akapitów, list itp. Tutaj znajdziecie wykaz innych generatorów Lorem ipsum.
Więcej narzędzi na stronie webdesigner depot. Z pewnością każdy znajdzie coś dla siebie.

niedziela, 26 lipca 2009

Mazury z dzieckiem - po urlopie

Po przerwie wróciłem turystycznie na Mazury. Dwa tygodnie na jachcie Maxus 24, który w tym miejscu chcę polecić: szybki i wygodny. Według danych może nim pływać maksymalnie 8 osób, jednak nie wyobrażam sobie tego. Po raz pierwszy wzięliśmy na pokład syna (2 lata i trochę). Trasa żeglarsko krótka (Węgorzewo - Leśna Keja (j. Boczne) - Węgorzewo), ale tym razem priorytetem była wygoda i zabawa dla dzieci.
Dla osób, które wybierają się z dziećmi chciałbym polecić dwa miejsca, które zrobiły na nas bardzo pozytywne wrażenie.
Pierwszy z nich to Ognisty Ptak. Genialny plac zabaw, tawerna którą koniecznie trzeba zobaczyć, super obsługa i dobre sanitariaty. Co najważniejsze w tym miejscu nie ma się żadnych obaw żeby dziecko biegało na bosaka, co chyba w dzisiejszych czasach jest rzadkością. Ponadto świetne zejście do wody, ratownik, oznaczone kąpielisko. Cena postoju: 15zł/jacht + 15zł/osoba dorosła. W cenie sanitariaty bez ograniczeń + 1 prysznic.


Drugie miejsce to ośrodek Stranda na wejściu do kanału Giżyckiego od strony jeziora Kisajno. Bardzo dobre jedzenie, wzorcowe sanitariaty, przyjemny plac zabaw. Koszt cumowania 20zł/jacht + 6zł/osoba dorosła. W cenie korzystanie z sanitariatów bez ograniczeń (prysznice płatne dodatkowo).


Poza tym place zabaw znaleźliśmy w Sztynorcie. W Wilkasach (AZS Wilkasy) dobre zejście do wody ale niestety śmieci, szkło, puszki na plaży nie zachęcają do zabawy. Całkowite rozczarowanie to Węgorzewo bez jakichkolwiek atrakcji dla najmłodszych oraz sanitariatami, które wyglądają tak samo jak je widziałem z 10 lat temu. Mamerki ten sam obraz, żadnego postępu. Wierzę, że kiedyś się to jednak zmieni...
Niestety urlop się skończył i czas wrócić do Javy... Przy okazji czy ma ktoś pod ręką skonfigurowane rozwiązanie Windows + Tomcat + Kerberos? Problem rozwiązałem pod Linuksem wykorzystując Apache (mod_auth_kerb) + Tomcat.

czwartek, 25 czerwca 2009

Tomcat - unieważnianie sesji podczas restartu

Unieważnianie sesji podczas restartu Tomcata mogłoby wydawać się mało istotne, ale w pewnych okolicznościach jego brak może prowadzić do zaskakujących i niechcianych efektów. Przykład?
  1. Odpalamy Tomcata,
  2. Logujemy się do aplikacji,
  3. Zatrzymujemy Tomcata,
  4. Przepinamy się na inną bazę,
  5. Odpalamy Tomcata,
  6. Otwieramy aplikację,
  7. Oooops jesteśmy zalogowani i do tego jako inny użytkownik.
Tak więc w takim przypadku dobrze jest automatycznie unieważnić wszystkie sesje podczas zatrzymywania Tomcata. Jak?

<Context docBase="...">
<Manager className="org.apache.catalina.session.StandardManager" pathname="">
</Manager>
</Context>

wtorek, 9 czerwca 2009

Kursy motorowodne - lato, jesień

Dziś trochę inaczej. Jeżeli chcecie oderwać się od komputera, zdobyć nowe uprawnienia to zapraszam na kursy na patent sternika motorowodnego oraz starszego sternika motorowodnego. Plan kursu, informacje oraz możliwość zapisania się na http://motorowodne.zapisy.net/

piątek, 29 maja 2009

GeeCON - zdjęcia

Jeżeli ktoś nie odwiedzał ostatnio strony GeeCONa to warto - pojawiły się zdjęcia. Jest ich naprawdę dużo. Są tu, tu i tu :)

piątek, 8 maja 2009

GeeCON - dzień drugi. Podsumowanie

Zakończyła się pierwsza edycja konferencji GeeCON. Drugi dzień obfitował w równie ciekawe wykłady. Tym razem na pierwszym miejscu stawiam "What's new in Java EE 6" (Antonio Goncalves). Ponadto w dalszym ciągu świetna organizacja oraz drobne problemy sprzętowe (na koniec okazało się, że rozwiązanie problemów było dość zaskakujące: laptopy marki Apple mogły działać tylko w sali nr 6 :) )
Dołączam się do podziękowań Marka i nie pozostaje nic innego jak czekać na kolejne edycje GeeCONa. A w najbliższym czasie trzeba odwiedzić stolicę (JAVArsovia).