【发布时间】:2014-10-31 18:06:48
【问题描述】:
我正在尝试在用户离开网站 30 分钟以上时自动将用户重定向到登录页面的任务(shiro 认为他已注销)。
根据本页 https://stormpath.com/blog/whats-new-apache-shiro-12/
我需要在 ini 中使用 logout.redirectUrl
我尝试过,但未能成功实现此功能
这是我的ini
[main]
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
jdbcRealm.authenticationQuery = SELECT password from users where user_name = ?
jdbcRealm.userRolesQuery = select role_name from users_roles where user_name = (select user_name FROM users WHERE user_name = ?)
ds = org.postgresql.ds.PGSimpleDataSource
ds.serverName =localhost
ds.user = postgres
ds.password = 123456
ds.databaseName = example
jdbcRealm.dataSource= $ds
authc.loginUrl = /faces/login.xhtml
user.loginUrl = /faces/login.xhtml
logout.redirectUrl = /faces/login.xhtml
multipleroles = com.example.util.MultipleRolesAuthorizationFilter
[urls]
/faces/login.xhtml = authc
/faces/logout = logout
/faces/authorized/** = user, multipleroles["admin,guest"]
/faces/guest/** = user, multipleroles["admin,guest"]
/faces/admin/** = user, roles[admin]
【问题讨论】:
-
您能否更准确地说出问题所在。什么不工作?注销现在在做什么?
-
注销工作正常。但我正在寻找的是以下内容:当用户远离计算机时,我希望 shiro 自动将他注销,这就是它所做的,但是当发生这种情况时,它不会再次将他重定向到登录页面,而是会在他点击某个链接之前,他会一直停留在同一页面中。我想强制重定向到登录页面
-
这听起来更像是使用某种 javascript/push 框架所做的事情。当用户在后端注销时,不会向浏览器发送任何内容,因此它无法知道它需要重定向 - 直到用户点击某些东西 -。所以这更像是前端/推送/javascript 问题,而不是 shiro 问题。
-
我喜欢你的建议,谢谢,尽管我仍然感到困惑的是,在我提到的博客中,他们说新版本的 shiro 支持这项任务。感谢您的帮助
-
把它作为一个答案很好,所以这个问题可以关闭
标签: java security jakarta-ee shiro