Wir versuchen, ein altes Projekt in ein moderneres umzuwandeln. Es war eine Servlet-basierte Anwendung mit JSPs, und wir bewegen uns in Richtung Frühling. Wir dienen jsp-s, und sie enthalten viele statische Ressourcen. Wir verwenden Redis als Session-Speicher, und es ist wie ein Filter zugeordnet:Wie Ressourcen von SpringSessionRepositoryFilter auszuschließen?
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = SpringSessionConfig.MAX_INACTIVE_INTERVAL_IN_SECONDS)
@PropertySource(value = "classpath:redis.properties")
public class SpringSessionConfig { ... }
Statische Ressourcen in vielen verschiedenen Verzeichnisse verteilt sind, und das Problem ist, dass dieser Filter läuft für jede Ressource, was völlig verständlich ist.
Gibt es eine intelligente Möglichkeit, Ressourcen von diesem URL-Muster auszuschließen? Oder eine Konfiguration für diesen RepositoryFilter?
Die einzige Lösung, die ich gefunden habe, ist, einen großen Refactor zu machen und richtige Namespaces für statische Ressourcen zu erstellen, aber im Moment ist das zu viel Aufwand.
Ich habe auch Ressourcen-Handler Spring-Konfiguration hinzugefügt, aber es wird hier ignoriert.
Danke, ich überprüfe das auch. Im Moment versuche ich etwas Ähnliches mit FilterChainProxy. hier gefunden: https://github.com/spring-projects/spring-session/issues/278 – JSONStatham
ja, das kannst du auch machen, lege den Filter in die Filterkette. und verwenden Sie dann die Übereinstimmung der Federsicherheitsanforderung – chaoluo