gpt4 book ai didi

spring - Grails Spring Security无法在一夜之间登录用户

转载 作者:行者123 更新时间:2023-12-02 16:00:12 25 4
gpt4 key购买 nike

您好,我是Grails的新手,并创建了一个使用Grails Spring Security插件的简单网站。我已使用所有默认设置,并成功为我的网站设置了登录名。但是在早上重新访问该网站时,我无法登录。

我已经检查了数据库,并且用户在那里并且没有以任何方式被锁定。

有人可以给我解释为什么失败了。服务器错误日志中没有任何内容。这是所有相关代码...

配置安全性设置:

// Added by the Spring Security Core plugin:
grails.plugin.springsecurity.auth.loginFormUrl = '/#about-us'
grails.plugin.springsecurity.failureHandler.defaultFailureUrl = '/#about-us'
grails.plugin.springsecurity.successHandler.defaultTargetUrl = '/#about-us'
grails.plugin.springsecurity.logout.afterLogoutUrl = '/#about-us'
grails.plugin.springsecurity.logout.filterProcessesUrl = '/#about-us'
grails.plugin.springsecurity.userLookup.userDomainClassName = 'rootstofood.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'rootstofood.UserRole'
grails.plugin.springsecurity.authority.className = 'rootstofood.Role'

bootstrap 设置(屏蔽了用户帐户详细信息):
def adminRole = Role.findByAuthority('ROLE_ADMIN') ?: new Role(authority: 'ROLE_ADMIN').save(failOnError: true)
def userRole = Role.findByAuthority('ROLE_USER') ?: new Role(authority: 'ROLE_USER').save(failOnError: true)
def superUser = User.findByUsername('xxxxxxxx') ?: new User(username: 'xxxxxxxx', password: 'xxxxxxxx').save(failOnError: true, flush: true)
if (!UserRole.findByUserAndRole(superUser, adminRole)) {
UserRole.create superUser, adminRole, true
}

注销 Controller :
@Secured('permitAll')
class LogoutController {
def index() {
session.invalidate()
// TODO put any pre-logout code here
redirect uri: SpringSecurityUtils.securityConfig.logout.filterProcessesUrl // '/j_spring_security_logout'
}
}

其余所有都是默认的。如前所述,它似乎可以正常登录和注销,直到过夜?

真的很感激我被困在这里的任何人的帮助。我已经包含了log4j日志,但必须等一整夜才能查看它是否记录了任何提示,以证明为什么这会在一夜之间失败。

非常感谢

安迪·H

最佳答案

我设法通过在dataSource.groovy文件中的数据库URL中添加?autoReconnect = true来克服此问题。所以我的数据库连接URL设置看起来像:

url = "jdbc:mysql://localhost/database_name?autoReconnect=true"

所以我的生产数据源设置如下所示:
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:mysql://localhost/database_name?autoReconnect=true"
driverClassName = "com.mysql.jdbc.Driver"
username="db_username"
password="db_password"
properties {
jmxEnabled = true
initialSize = 5
maxActive = 50
minIdle = 5
maxIdle = 25
maxWait = 10000
maxAge = 10 * 60000
timeBetweenEvictionRunsMillis = 5000
minEvictableIdleTimeMillis = 60000
validationQuery = "SELECT 1"
validationQueryTimeout = 3
validationInterval = 15000
testOnBorrow = true
testWhileIdle = true
testOnReturn = false
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}
}

关于spring - Grails Spring Security无法在一夜之间登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32114721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com