2016-05-14 10 views
1

Ich habe eine Grails 3.1 App und verwende das Spring Security Plugin mit einem benutzerdefinierten Stateless Authentication Provider. Das alles funktioniert, aber ich bekomme immer noch Weiterleitungen zu meinem Login-Bildschirm, wenn keine Sitzung vorhanden ist und eine Sitzung erstellt wurde (mit einem Sitzungs-ID-Cookie).Wie kann ich verhindern, dass Grails 3 jemals eine Sitzung erstellt?

Wie kann ich die Federsicherheit anweisen, niemals Cookies zu verwenden, oder alternativ dazu, dass sie niemals erstellt werden dürfen? Ich habe ein paar Antworten rund um die einfache Federsicherheit gesehen, aber mit dem Grails-Spring-Sicherheits-Plugin scheinen die Dinge anders zu funktionieren.

Antwort

0

Spring Security-Plugins arbeiten mit Filtern, von denen wahrscheinlich einer auf die Anmeldeseite umleitet. Ich weiß nicht genau, wie Sie Ihre Authentifizierung angepasst haben, aber basierend auf Spring Security REST Plugin sollten Sie diejenigen aus der Filterkette entfernen, die Sie nicht benötigen.

grails.plugin.springsecurity.filterChain.chainMap = [ 
    //Stateless chain 
    [ 
     pattern: '/api/**', 
     filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter' 
    ], 

    //Traditional chain 
    [ 
     pattern: '/**', 
     filters: 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter' 
    ] 
] 
+0

Vielen Dank, mit diesem Ansatz konnte ich vermeiden, dass eine Sitzung für die Authentifizierung erforderlich ist, d. H. Mit meinem Token-Set und keiner Sitzung, werde ich nicht mehr zurück zur Anmeldeseite weitergeleitet. Allerdings besteht immer noch etwas darauf, eine Sitzung zu erstellen, dann werde ich auf die Anmeldeseite umgeleitet, obwohl ich einen benutzerdefinierten LoginController und eine benutzerdefinierte Ansicht habe. Irgendwelche Ideen, was würde das tun? – SoftMemes

+0

Nein. Aber stellen Sie das Level der Spring Security Logs auf debug, vielleicht wird es Ihnen helfen. –

0

Es scheint, dass Sie zumindest zu falsch, festlegen müssen, die folgenden Spring Security Eigenschaften, um richtig Sitzung Schöpfung zu deaktivieren.

application.groovy

grails.plugin.springsecurity.scr.allowSessionCreation = false 
grails.plugin.springsecurity.scpf.forceEagerSessionCreation = false 
grails.plugin.springsecurity.apf.allowSessionCreation = false 

Sie haben mehr Informationen im Grails Spring Security Plugin documentation website.

Verwandte Themen