Bezpečnosť prístupu

Ciele
  1. Zabezpečiť stránky od nepovoleného prístupu.
  2. Skryť položky v menu, ktoré nemajú byť prístupné pre hráča.
Úvod
    V projekte exisuje entita UserRole, ktorá znázorňuje vzťah medzi User a Role. Účet admin vlastní ROLE_ADMIN. Vďaka nej vieme regulovať prístup na stránky a tiež položky v menu a v zobrazení.
Postup
  1. Na to, aby sme splnili ciele, potrebujeme v databáze vytvoriť novú používateľskú rolu. Túto rolu potrebujeme nastaviť každému novoregistrovanému hráčovi.
    Úloha: Pri registrácii vytvorte novú rolu a nastavte jej meno ROLE_PLAYER.
    Úloha: Vytvorte vzťah UserRole a nastavte jej parametre roleEntry a userEntry. Zmeny nezabudnite uložiť do databázy.
    Poznámka: Jedinečným identifikátorom Role v databáze je jej meno. Preto by sa mala vytvárať nová iba v tom prípade, že ešte v databáze neexistuje.
  2. Keď už existuje rola priradená hráčom, môžeme ju využiť pri konfigurácii bezpečnosti.
    Úloha: Upravte META-INF/spring/applicationContext-security.xml tak, aby mal hráč prístup iba k stránkam MyVillages, Villages, Train, Attack, Build a Notifications. Zvyšné stránky nech požadujú adminské práva.
    Poznámka: Súbor už obsahuje bežné nastavenia.
    Správnosť implementácie overíte tak, že po kliknutí na zakázanú položku v menu sa vám zobrazí chybová hláška.
  3. Ďalej chceme pred hráčom skryť aj položky menu, ktoré nemá vidieť. Položky menu sú definované vo webapp/WEB-INF/views/menu.jspx
    Úloha: V tagu div zadefinujte security nasledovne:
    
                    xmlns:security="http://www.springframework.org/security/tags"
                
    Zabezpečte obsah nasledovným párovým tagom. Položky mezdi týmito tagmi budú zobrazené len používateľom s ROLE_ADMIN.
    
    <security:authorize ifAnyGranted="ROLE_ADMIN">
                    
    </security:authorize>
Zdroje
  1. Spring security
comments powered by Disqus