2016-08-18 2 views
1

Nach erfolgreicher Anmeldung war die Authentifizierung offensichtlich nicht null, aber während die Anmeldung einen Fehler erzwingt, wird die Authentifizierung ungültig.Thymeleaf-Authentifizierungsobjekt ist entweder Null oder leer auf einer Fehlerseite

  • Frühlings-Boot 1.3.1
  • Thymeleaf 2.1.4
  • Thymeleaf-Spring4 2.1.4
  • Thymeleaf-Extras-SpringSecurity4

error.html (benutzerdefinierte Fehlerseite, die Griffe Fehler/Ausnahme)

menu.html (alle Menü Elemente werden bei Fehlern/Ausnahmebedingungen nicht angezeigt)

Wird dieses Verhalten erwartet oder fehle ich irgendetwas? Ich erwarte, dass das Authentifizierungsobjekt nicht null ist, damit ich gesicherte URL-Links erneut anzeigen kann.

Antwort

0

haben einen Blick auf die thymeleaf-extras-springsecurity Github Website

Sie sollten den SpringSecurity Dialekt Ihre Template Engine

<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> 
     <property name="additionalDialects"> 
     <set> 
      <bean class="org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect"/> 
     </set> 
     </property> 
    </bean> 

Hoffnung hinzufügen, das hilft

1

Dies ist ein bekanntes Problem mit Frühlings-Boot, dass auch dokumentiert in the documentation:

NB . Wenn Sie eine ErrorPage mit einem Pfad registrieren, der am Ende von einem Filter behandelt wird (zB wie bei einigen Nicht-Spring Web Frameworks, wie Jersey und Wicket), muss der Filter explizit als ERROR Dispatcher registriert sein (Die Standardeinstellung FilterRegistrationBean enthält nicht den FEHLER-Dispatcher-Typ).

Und Beispiel:

@Bean 
public FilterRegistrationBean myFilter() { 
    FilterRegistrationBean registration = new FilterRegistrationBean(); 
    registration.setFilter(new MyFilter()); 
    ... 
    registration.setDispatcherTypes(EnumSet.allOf(DispatcherType.class)); 
    return registration; 
} 

Siehe auch related issue in Spring Boot tracker.

Aber Sie können konfigurieren, dass auch da 1.3.1 einfacher (siehe #4505) durch die folgende Zeile in application.properties Zugabe:

security.filter-dispatcher-types: ASYNC, FORWARD, INCLUDE, REQUEST, ERROR 
+0

ein FilterRegistrationBean Erstellen und Überschreiben der Standard-Versand-Typen nicht helfen, das Problem zu beheben. Im Anschluss an [Problem # 5638] (https://github.com/spring-projects/spring-boot/issues/5638) wurde jedoch eine Problemumgehung durch Unterdrücken des Standard-BasicErrorControllers bereitgestellt. Bisher funktioniert das gut mit Spring Boot 1.3.1 + Thymeleaf 2.1.4. – aalmero

Verwandte Themen