Martin Majer napsal(a):

Jakým způsobem mám tedy omezit přístup k JSP stránkám? Jaké jsou možnosti?

SNADNO A RYCHLE :-)

Nastavte si autentifikaci pres webovy container. U tomcatu ve standardnim nastavenim je to soubor conf/tomcat-users.xml.
Je tam seznam uzivatelu a roli a vazba mezi nimi.

Zalozte si tam:
<role rolename="reditele"/>
<role rolename="skladnici"/>
<user username="jarda" password="aa" roles="reditele,skladnici"/>
<user username="pepa" password="aa" roles="skladnici"/>

Bacha na syntaxi a restartujte tomcat.

Webovou aplikaci a konretne obsah chranite pomoci nastaveni ve web.xml:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Restricted area</web-resource-name>
       <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>reditele</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
   <auth-method>BASIC</auth-method>
   <realm-name>Log Area</realm-name>
</login-config>

V Url pattern muzete omezit co vlastne chcete chranit, zde chranite celou aplikaci. Bez prihlaseni k uzivateli patricimu do role "reditele" se nikam nedostanete a skoncite s chybou pristupu. Muzete stejnym postupem urcit i sadu JSP ktere se chrani pod urcitou roli atd.

No a pokud chcete jemnejsi cleneni kdy pristup k JSP ma 20 roli ale jen nektere casti smi provadet nektere role, pak request v JSP (HttpServletRequest) ma nasledujici metodu:

boolean isUserInRole(String role)

Nakonec si muzete pohrat s tim dat ty uzivatele do databaze (Mysql, Postgresql...) a tomcatu naridit, aby misto toho XML souboru pouzival databazi.
A pak si napisete aplikaci ktera bude menit data v te databazi atd.
A tak dale.

Takhle bych to videl ja.

Leos

Odpovedet emailem