2009-11-27 7 views

Antwort

9

JSecurity wurde eigentlich ein Apache-Projekt unter dem Namen Apache Ki vor einer Weile und sie waren nicht glücklich mit der Namensänderung aus irgendeinem Grund und änderte es bald darauf Apache Shiro. Auch Stark ist nur ein Grails Plugin Wrapper für Spring Security und Acegi ist der Ursprung des Spring Security-Projekts.

Also welche verwenden?

Erstens,, Spring Security ist eine ausgereifte Sicherheits-API und bereits weit verbreitet, so aus Stabilität, Unterstützung und vor allem aus Sicht der Sicherheit ist es eine gute Wahl. Shiro verliert leider ein bisschen daran, da es meines Wissens nach noch immer nicht so weit verbreitet ist.

Zweitens, sie die Art und Weise der Sicherheits-Framework tatsächlich verhält, ist ziemlich wichtig, es muss in der Lage sein, Ihnen zu ermöglichen, Ihr Lieblingsschema der Sicherung Ihrer Anwendung zu tun. Zum Beispiel, während einige Leute die Art und Weise wie Shiro funktioniert mag (see this tutorial, vor allem der Teil unter der Überschrift "Quickstart.java") andere könnten nicht leben, ohne Spring Security es-Zeug und so weiter und so weiter. Grundsätzlich müssen Sie beide ausprobieren und herausfinden, ob sie Ihre Bedürfnisse aus Sicht der Benutzerfreundlichkeit erfüllen.

Drittens, sicher sein, die tatsächliche Sicherheit! Spring Security kann garantiert sicher sein, Shiro ist am wahrscheinlichsten sicher, weil keine weit verbreitete Annahme verbirgt Sicherheitsprobleme leicht, siehe zum Beispiel Firefox vulnerabilities zu sehen, wie erhöhte Benutzerbasis beginnt, die tatsächliche Sicherheit der Anwendung auf lange Sicht zu beeinflussen.

Um dies zu beenden, würde ich Spring Security wählen, weil es weit verbreitet ist, es ist garantiert sicher und bereits in Grails integriert. JSecurity/Ki/Shiro ist überhaupt nicht schlecht und ich habe es eine Zeit lang benutzt, aber im Moment ist es in einer Art Schwebezustand, denn wer weiß, welchen Grund und für einen Sicherheitsrahmen das nicht akzeptabel ist.

Edit: Es ist über 1½ Jahre her, dass ich diese Frage beantwortet habe, also musste ich zurückkommen und sagen, dass unser Unternehmen kürzlich Spring Security aufgrund seiner hohen Pluggability und seiner bewährten Funktionalität entschied. Das macht mich natürlich etwas voreingenommen, aber auf jeden Fall würde ich sagen, dass Spring Security der richtige Weg ist.

+0

Oh mein Gott, habe mich nicht einmal daran erinnert, diesen zu beantworten ... Ich fühlte die Notwendigkeit, in ein paar Zeilen zu bearbeiten :) – Esko

7

Eskos Antwort ist großartig und kompromisslos. Ich habe vor einem Monat eine Bewertung der verschiedenen Frameworks durchgeführt und Shiro als zugrunde liegenden Sicherheitsrahmen gewählt, obwohl ich bereits Erfahrungen mit Spring Security hatte. Ich brauchte eine Lösung mit der Fähigkeit, komplexe Autorisierungsanforderungen zu erstellen. Das Modell von JSecurity ist sehr einfach und dennoch sehr leistungsfähig.

Was mich schließlich überzeugt hat, ist Nimble Plugin, das eine Schicht von UI auf Shiro ist. Es erlaubt Ihnen, Benutzer, Rollen, Gruppen, Self-Service-Account-Erstellung, E-Mail, etc. zu verwalten und ist einfach in Ihre Anwendung zu integrieren. Nicht den ganzen Code schreiben zu müssen, war ein großer Gewinn für mich. Es ermöglicht auch die Integration mit OpenId, Facebook und anderen.

Wenn Nimble für SpringSecurity gearbeitet hätte, hätte ich es wahrscheinlich gewählt, aber ich sah es als einen großen Gewinn für mich.

0

Danke Jungs für Ihre Antworten. Ich habe tatsächlich die Federsicherheit bei einer Grails-Anwendung ausprobiert.Das Grails-Plugin macht es sehr einfach zu bedienen.

grüße.

Josh

+0

Psst, SO Etikette ist, dass Sie eine der Antworten als "richtige" auswählen (* grünes Häkchen unter dem Hoch-/Runterzähler *), nachdem Sie das Gefühl haben, dass Sie eins gegeben haben. Ich weiß, manchmal ist es schwer, weil es so viele gute Antworten gibt, aber es wird jedem in der Zukunft helfen, besonders denjenigen, die keine Zeit haben, jedes einzelne Wort zu lesen, das mit der Frage zusammenhängt. – Esko

1

ich beide Frameworks verwendet haben und lieben die Art und Weise Shiro im Vergleich zu Spring Ansatz funktioniert. Ich weiß nicht, warum Spring Security so beliebt ist. Im Gegensatz zu Shiro wird Spring Security in der gesamten Anwendung ausgeführt, wenn eine Konfiguration erforderlich ist. Ist Sicherheit für die meisten Anwendungen kein übergreifendes Anliegen? Wenn ja, wäre es nicht "sauberer Code", es an einem einzigen Ort zu isolieren? Meine zwei Cent.

Verwandte Themen