我正在使用grails应用程序。对于用户管理,我正在使用Grails的Spring Security核心插件。我想存储一些特定于刚刚登录的用户的信息,直到用户保持登录状态,我希望在所有浏览器中都可以使用这些信息。我试图使用基于范围的服务来访问这个。在resources.groovy文件在Grails中使用基于范围的服务时的问题
class LoggedInUserSessionDataService {
String searchParams
String searchQuery
//This service will get expire when loggedin user's session will expire
static scope = 'session'
}
和代理吧:所以我创建了一个服务
loggedInUserSessionDataServiceProxy(org.springframework.aop.scope.ScopedProxyFactoryBean) {
targetBeanName = 'loggedInUserSessionDataService'
proxyTargetClass = true
}
在我的控制器
然后,我注入这个代理:
def loggedInUserSessionDataServiceProxy
于是,经过所有这一切,只有特定浏览器才提供存储的信息,并且当我尝试在其他浏览器中访问此信息时,该信息不会被发现,但它也应该可以在该浏览器中访问。
请指导我如何实现这一目标?如果这不是通过基于范围的服务来实现的,那么还有什么其他选择?
P.S.在同一浏览器中,当用户保持登录状态时,存储的信息在同一浏览器中保持可用状态正常工作。
感谢您的时间:)
另一个浏览器是什么意思:1)'它在IE中可用,但不在Chrome中'或2)'它在用户登录的浏览器中工作,但我也使用第二个浏览器登录,无法看到数据'? – 2014-12-08 09:34:11
另一种浏览器意味着跨浏览器。对于Chrome用户登录的示例,我将一些数据存储在用户的会话数据中,并且当用户在Mozila浏览器中登录后,我不会将数据放入会话对象 – 2014-12-08 09:54:56