大佬教程收集整理的这篇文章主要介绍了如何使用Spring Security获取会话超时消息,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我解决了!通过编写过滤器来代替,取决于Spring-security。
如果有人有兴趣,可以使用以下代码:-
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.messageformat;
import javax.servlet.FilterChain;
import javax.servlet.http.httpServletrequest;
import javax.servlet.http.httpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.filter.oncePerrequestFilter;
public class FilterToGetTimeOut extends OncePerrequestFilter {
@OverrIDe
public voID doFilterInternal(httpServletrequest request, httpServletResponse response, FilterChain filterChain) throws IOException {
try {
if(request.getrequestuRI().equals("/") || request.getrequestuRI().equals("/Login/")){
if(request.getSession().getAttribute("login") != null && (Boolean)request.getSession().getAttribute("login") == truE){
response.sendRedirect(URL); //After login page
}
} else if(request.getSession().getAttribute("login") == null && !request.getrequestuRI().equals("/logout")){
response.sendRedirect(request.getcontextpath()+"/?timeout=true"); //If timeout is true send session timeout error message to JsP
}
filterChain.doFilter(request, responsE);
} catch (Exception E) {
//Log Exception
}
}
}
在中添加此过滤器web.xml
。
<filter>
<filter-name>FilterToGetTimeOut </filter-name>
<filter-class>package.FilterToGetTimeOut </filter-class>
</filter>
<filter-mapPing>
<filter-name>FilterToGetTimeOut</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapPing>
因此,现在会话也无效,我也可以处理会话超时。
我想在会话过期时获取会话超时消息。以下是我的 spring-security.xml
<http auto-config="true" use-expressions="true">
<logout logout-success-url="/" invalidate-session="true" logout-url="/LogOut"/>
<form-login login-page="/Login" username-parameter="Name" password-parameter="Pwd"/>
<session-management invalid-session-url="/?timeout=true">
<concurrency-control max-sessions="1" expired-url="/Timeout?timeout=true" />
</session-management>
</http>
据我所知,使用上述代码的会话过期时,应重定向到/?timeout=true OR
/Timeout?timeout=true
。并在注销时转到/
。但是在我的情况下,登出时也将其重定向到,invalid-session-
url
因此对于正常登出和会话超时,我总是会得到超时true。
请帮助我区别一下。
更新
/logout
请求包含
session = request.getSession();
session.invalidate();
session = null;
以上是大佬教程为你收集整理的如何使用Spring Security获取会话超时消息全部内容,希望文章能够帮你解决如何使用Spring Security获取会话超时消息所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。