在Grails中获取会话创建时间+;阿帕奇西罗酒店
我的应用程序中有一个文本在Grails中获取会话创建时间+;阿帕奇西罗酒店,grails,httpsession,Grails,Httpsession,我的应用程序中有一个文本最后一次出现:字段,显示当前用户登录系统的时间(例如5秒前、4小时前、3天前等)。现在我要做的是,我需要确定: ApacheShiro执行登录的时间;或 创建当前Grails会话的时间 然后将其减去当前时间。但是我怎样才能访问这两个的创建时间呢?或者有没有更好的方法来实现这一点,而不是使用上面提到的方法?我不知道ApacheShiro,但我可以告诉您如何获得会话创建时间 实际上非常简单,在HttpSession中有一个名为getCreationTime()的方法。这是
最后一次出现:
字段,显示当前用户登录系统的时间(例如5秒前、4小时前、3天前等)。现在我要做的是,我需要确定:
- ApacheShiro执行登录的时间;或
- 创建当前Grails会话的时间
然后将其减去当前时间。但是我怎样才能访问这两个的创建时间呢?或者有没有更好的方法来实现这一点,而不是使用上面提到的方法?我不知道ApacheShiro,但我可以告诉您如何获得
会话创建时间
实际上非常简单,在HttpSession
中有一个名为getCreationTime()
的方法。这是你的电话号码
您可以在控制器中可用的会话属性
上调用此方法。这将以毫秒为单位将时间返回为long
在控制器操作中,您可以这样编写:
class MyController {
// Considering this action is secured for logged in user only
def foo() {
long currentMillis = new Date().getTime()
long sessionCreationMillis = session.getCreationTime()
long loggedInFor = currentMillis - sessionCreationMillis
println "User has been logged in for $loggedInFor miliseconds"
}
}
现在,您得到了用户登录的时间(毫秒)。此外,您可以使用该库将毫秒转换为其他值
或者,您也可以使用任何Javascript库,就像您计划在客户端这样做一样