2016-05-20 11 views
2

Ich suche Unterstützung bei der Konfiguration von Spring Boot, um eine Spring Session zu erhalten, ohne Spring Security zu verwenden.Persist Spring Session ohne Spring Security

Ich begann mit der HttpSession JDBC Spring Boot sample app, um eine Spring Session für eine Spring Boot App beizubehalten. Dies verwendet jedoch Spring Security. Wenn Sie Spring Security entfernen, wird die Sitzung nicht mehr in der H2-Datenbank gespeichert. Die Beispielanwendungen XML config und Java config verwenden Spring Security nicht. Also keine Voraussetzung.

Die guide besagt, dass die springSessionRepositoryFilter die Spring Session erstellen wird. Nach dem Entfernen von Spring Security und dem Debuggen dieses Filters (SessionRepositoryFilter) wird der an SessionRepositoryFilter $ SessionRepositoryRequestWrapper.getSession (boolean) übergebene Boolesche Wert jedoch nie auf True gesetzt. Daher wird die Spring Session nie erstellt und beibehalten.

Haben Sie Vorschläge zur zusätzlichen Konfiguration, um eine Spring Session für eine Spring Boot App ohne Spring Security zu erhalten?

Hier sind die entsprechenden Klassen, pom.xml und application.property Datei:

@SpringBootApplication 
public class SbWebSessionJdbcApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(SbWebSessionJdbcApplication.class, args); 
    } 
} 

@EnableJdbcHttpSession 
public class HttpSessionConfig { 
} 

pom.xml

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.3.5.RELEASE</version> 
    <relativePath/> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.session</groupId> 
     <artifactId>spring-session-jdbc</artifactId> 
     <version>1.2.0.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.session</groupId> 
     <artifactId>spring-session</artifactId> 
     <version>1.2.0.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-jdbc</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

application.properties

spring.thymeleaf.cache=false 
spring.template.cache=false 
spring.datasource.schema=classpath:org/springframework/session/jdbc/schema-h2.sql 
spring.h2.console.enabled=true 
logging.level.org.springframework.web=DEBUG 

Antwort

1

Eigentlich gibt, Es ist nichts, was Sie genauer konfigurieren müssen - Sie müssen nur die Erstellung voninitiierenund verwenden Sie es nach Ihren Bedürfnissen. Zum Beispiel wäre der einfachste Weg, dies zu erreichen, Spring MVC Controller-Methode mit HttpSession als Argument.

Auschecken this repo on Github, insbesondere basic-jdbc Modul. Es ist genau das Muster, nach dem Sie suchen - Spring Boot-Anwendung mit Spring Session, aber ohne Spring Security.

Verwandte Themen