W servletach robi sie to w web.xml. Zasob jest to para metod http oraz url. Np, masz jakas aplikacje, i np masz jakies administracyjne stronki, np dodawanie uzytkownikow i chcesz aby tylko admini mogli to wykonac, w web xml robisz tak:
...
<security-role>
<role-name>admin</role-name>
<security-role>
....
<security-constraint>
<web-resource-collection>
<web-resource-name>Add user resources</web-resource-name>
<url-pattern>/addUser.html</url-pattern>
<url-pattern>/addUser</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Username validator</web-resource-name>
<url-pattern>/validator</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
Zauwaz ze musisz zadeklarowac w web.xml nazwy rol ktore wykorzystuje aplikacja (element security-role). Nastepnie przeanalizuj 2 podne przeze mnie przyklady. Pierwszy z nich dodatkowo wymaga, aby komunikacja byla tajna (szyfrowana) - w servletach nie musi to byc SSL, ale tomcat (i praktycznie wszyscy) uzywaja do tego SSL.
Pierwszy przyklad rowniez pokazuje ze ograniczenia nadaje sie na pare URL-metoda http. W przykladzie tylko dostep poprzez metode GET jest ograniczony. Jesli chcesz aby wszystkie metody HTTP1.1 (GET, POST, HEAD ..., servlety w wersji 2.5 pozwalaja na dowolne metody, np te z rozszerzenia webdav) byly ograniczane dla danego url to pomin element http-method, jak w przykladzie 2. Mozna miec wiecej niz 1 element http-method, moze rowniez byc pusty, co oznacza ze zadna metoda nie jest ograniczana, a zatem dostep jest bez ograniczen dla kazdego - nie ma w sumie sensu, chyba ze chcemy miec np zadeklarowane uzycie szyfrowania dla tego url.
Minus jaki ja osobiscie widze w tym jest to ze pary URL-metoda http maja ograniczenia nadawane statycznie, w web.xml. Czasami moze zajsc potrzeba aby robic to dynamicznie, np dodajesz role i chcesz zeby miala takie same mozliwosci co admin. Nie ma innej opcji jak edycja web.xml i restart aplikacji. Nie wiem jednak czy aktualnie to jest ci niezbedne.
To tak na szybko, bezpieczenstwo w servletach to w sumie jest troche do przeczytania, odsylam do specyfikacji lub tutoriali w necie. Bardzo fajnie moim zdaniem jest to opisane w Head First Servlets & JSP, edycja 2 (servlety 2.4, ale nic sie nie zmienilo w 2.5 pod tym wzgledem).
Pozdro.