Frage

Ich zeige eine Grails App zu einigen Kollegen auf einer öffentlichen Domäne. Bisher habe ich in Entwick-Modus arbeite und nicht über den Krieg im Einsatz.

Ich brauche die Anwendung, um zu sichern, um nicht onybody sie auszuchecken / mit ihm spielen. Ich habe einen Benutzer mgmt anstelle schon, aber vor sb etwas sieht würde Ich mag Htpasswd ähnlichen Schutz haben. Wenn möglich, möchte ich nicht die Anwendung selbst mit Plugins vergrößern (zum Beispiel shiro).

Alle Gedanken / Anregungen?

Vielen Dank!

War es hilfreich?

Lösung

könnten Sie verwenden die HTTP-Authentifizierung. HTTP-Authentifizierung ist tot einfach zu implementieren, aber es ist nicht sehr sicher oder verwendbar. Du bist besser dran shiro oder Feder Sicherheit für eine echte Lösung. Dies vorausgeschickt, um einen einfachen Filter für einen HTTP-Authorization-Header überprüfen und zurückgeben Statuscode 401, wenn nicht vorhanden. Das wird den Browser zwingen, ein Benutzername / Passwort-Box, um Pop-up und das Formular mit dem Benutzernamen und Passwort in den Header codiert erneut übermitteln.

Grails Filter müssen einen Klassennamen haben, dass Enden mit „Filter“ und gehen in der Grails-app / conf. Hier ein Beispiel:

class SimpleAuthFilters {
    def USERNAME = "foo"
    def PASSWORD = "bar"

    static filters = {
        httpAuth(uri:"/**") {
            before = {
                def authHeader = request.getHeader('Authorization')
                if (authHeader) {
                    def usernamePassword = new String(authHeader.split(' ')[1].decodeBase64())
                    if (usernamePassword == "$USERNAME:$PASSWORD") {
                        return true
                    }
                }
                response.setHeader('WWW-Authenticate', 'basic realm="myRealm"')
                response.sendError(response.SC_UNAUTHORIZED)
                return false
            }
        }
    }
}

Andere Tipps

Fügen Sie den folgenden auf $ CATALINA_HOME / conf / tomcat-users.xml und starten Sie Tomcat:

<role rolename="role1"/>
<user username="user1" password="password1" roles="role1"/>

Bei Ihrem Grails Projekt root ausführen grails install-templates. Dieser findet src / templates / Krieg / web.xml in das Projekt.
(Falls die Datei in Ihrem IDE nicht sichtbar ist, könnte dies ein Fehler sein. Dann ist es im Dateisystem finden.)

Fügen Sie die folgenden web.xml (als Kind des web-app Tag):

<security-constraint>
  <web-resource-collection>
    <web-resource-name>
      Entire Application
    </web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <auth-constraint>
      <role-name>role1</role-name>
  </auth-constraint>
</security-constraint>

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>Restricted Area</realm-name>
</login-config>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top