首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring -更改persistent_logins的模式连接

Spring -更改persistent_logins的模式连接
EN

Stack Overflow用户
提问于 2019-10-10 06:12:25
回答 1查看 183关注 0票数 0

我正在开发一个Spring Boot web应用程序,并且正在实现“记住我”功能。

我在我的网络安全配置中定义了:

代码语言:javascript
复制
http.authorizeRequests().and()
                    .rememberMe().tokenRepository(this.persistentTokenRepository())
                    .tokenValiditySeconds(1 * 24 * 60 * 60); // 24h

代码语言:javascript
复制
@Bean
        public PersistentTokenRepository persistentTokenRepository() {
            JdbcTokenRepositoryImpl db = new JdbcTokenRepositoryImpl();
            db.setDataSource(dataSource);
            return db;
        }

问题是,当我在html页面上标记该选项时,Spring会尝试在我的数据库->的默认模式中添加一个标记"public“。

有没有办法更改该选项的默认架构?其他所有内容都通过此属性在正确的模式上正确链接:

代码语言:javascript
复制
spring.jpa.properties.hibernate.default_schema=another_schema_name

我试图为类JdbcTokenRepositoryImpl创建一个个人实现,但我找不到一种方法来更改模式。我在网上查过了,但什么也没找到。

谢谢

问候你,穆罕默德

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-25 19:36:16

您可以用不同的方式初始化PersistentTokenRepository bean中使用的dataSource变量。大多数数据源都支持模式设置。例如,Spring的org.springframework.jdbc.datasource.DriverManagerDataSource:

代码语言:javascript
复制
@Bean(name = "dataSource")
public DataSource getDataSource() {
  DriverManagerDataSource dataSource = new DriverManagerDataSource();
  // ... tipicly set username, password, driver class name, jdbc Url
  dataSource.setSchema(schema);
  return dataSource;
}

您可以通过前面提到的属性来控制模式:(spring.jpa.properties.hibernate.default_schema)

代码语言:javascript
复制
@Value("${spring.jpa.properties.hibernate.default_schema}")
private String schema;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58312960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档