Open Registry of Game Information 

  • Abbildung von Berechtigungen

  • Alles für Entwickler: Java, JavaScript, REST-API, AngularJS, HTML.
Alles für Entwickler: Java, JavaScript, REST-API, AngularJS, HTML.

Moderators: MZ per X, gene

 #36226  by gene
 02 Sep 2012, 10:27
Ich stelle mir die Frage, wie wir "Berechtigungen" in unserem System technisch abbilden werden.
Ich habe "geplant", über Apache Shiro auf jeder Webseite bestimmte Teile abhängig von den Berechtigungen des Benutzers ein- bzw. auszublenden bzw. passend anzupassen. Aber Shiro kann Berechtigungen auch ohne Webseiten umsetzen: jede beliebige Funktionalität, die programmiert ist, kann mit Berechtigungen hinterlegt werden.

Hat schon jemand Erfahrungen mit Apache Shiro gemacht oder vielleicht eine bessere Alternative zur Hand?

Einführende Informationen über Apache Shiro findet man hier:
http://www.infoq.com/articles/apache-shiro
http://shiro.apache.org/10-minute-tutorial.html

In Wikipedia findet man diese einleitenden Worte:
Apache Shiro (pronounced "sheeroh", a Japanese word for castle) is an open source software security framework that performs authentication, authorization, cryptography and session management. Shiro has been designed to be an intuitive and easy-to-use framework while still providing robust security features.
Ich finde Shiro sehr nützlich, es kann vermutlich Alles, was wir brauchen werden!

Mir kommen z.B. die folgenden Dinge in den Sinn:
  • nicht jeder Benutzer darf Spiele-Eingaben in das System machen (z.B. nur registrierte, eingeloggte)
  • nicht jeder Benutzer darf Eingaben anderer Benutzer "moderieren" (freischalten, ablehnen, etc.)
  • nicht jeder Benutzer darf Statistiken über unser System einsehen
  • nicht jeder Benutzer darf News eingeben / veröffentlichen
Das schöne an Apache Shiro ist, dass es sämtliche Funktionalität nicht nur für Web-Frontends anbietet, sondern auch auf "low-level-Ebene", was das System sicherer macht und auch das Testen des Programmcodes einfacher macht.
 #36227  by Rene
 03 Sep 2012, 08:13
Klingt echt nach einem sehr schönen framework. Nach dem ersten überfliegen der Artikel bietet es echt eine Menge. Wenn es dann noch sei einfach zu verwenden ist wie angegeben wäre es echt super.
Ich werde es mir auf jeden Fall mal näher anschauen und dann berichten wie es so funktioniert.
 #36228  by StevenStorm
 03 Sep 2012, 17:55
Habe bislang nur mit Spring Security/Acegi gearbeitet. Scheint mir ähnlich viel zu können, nur in der Handhabung etwas anders zu sein.
Am Ende kommt es da denke ich eher auf eine einfache Integration mit dem Frontend Framework an.
 #36229  by gene
 03 Sep 2012, 19:32
StevenStorm wrote:Am Ende kommt es da denke ich eher auf eine einfache Integration mit dem Frontend Framework an.
Die Integration ins WebFrontend ist denkbar einfach.
Um z.B. einem eingeloggten User etwas Anderes anzuzeigen als einem nicht eingeloggten, reicht der folgende Code in der JSP-Datei:
Code: Select all
<shiro:authenticated>
    logged in as 
    <span style="color: green; font-weight: bold; font-style: italic;">
      <shiro:principal/>
    </span>. 
    <a href="${contextPath}/Logout">logout</a>
</shiro:authenticated>

<shiro:notAuthenticated>
    <fmt:message key="please"/> <a href="<c:out value="${contextPath}" />/Login"><fmt:message key="login"/></a>
    <fmt:message key="or"/> <a href="<c:out value="${contextPath}" />/Register"><fmt:message key="register"/></a>.
</shiro:notAuthenticated>
Sehr einfach!

Details zur JSP-Integration findet man hier.
 #36231  by gene
 03 Sep 2012, 19:43
StevenStorm wrote:Sieht okay aus... (auch wenn JSP für mich kein WebFramework ist sondern ein Krampf vergangener Tage ;))
Zu dem "Krampf":
Da wir JSPs nur noch für den Präsentations-Layer verwenden und keinerlei Geschäftslogik da rainprogrammieren, sollte das OK sein. HTML pur geht ja nunmal nicht :D