2016-05-20 87 views
2

我正在尋求幫助來配置Spring Boot來在不使用Spring Security的情況下堅持Spring會話。沒有Spring Security的堅持Spring會話

我從HttpSession JDBC Spring Boot sample app開始,爲Spring Boot應用程序堅持Spring會話。但是這使用Spring Security。在刪除Spring Security時,會話不再保存在H2數據庫中。 XML configJava config示例應用程序不使用Spring Security。因此,不是一個要求。

guide指出springSessionRepositoryFilter將創建Spring會話。但是,在刪除Spring Security並調試此過濾器(SessionRepositoryFilter)後,傳遞給的布爾值SessionRepositoryFilter $ SessionRepositoryRequestWrapper.getSession(布爾值)永遠不會設置爲true。因此,Spring Session永遠不會被創建和保存。

對於沒有Spring Security的Spring Boot應用程序需要額外配置的持久化Spring Session的任何建議?

下面是相關的類,pom.xml的,而application.property文件:

@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 

回答

1

其實,有沒有什麼更特別的,你需要配置 - 你只需要開始創建HttpSession並根據您的需要使用它。例如,實現此目的的最簡單方法是將Spring MVC控制器方法以HttpSession作爲參數。

檢出this repo on Github,特別是basic-jdbc模塊。這正是你正在尋找的示例 - Spring Spring應用程序,但沒有Spring Security。

相關問題