网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
/**
* session过期的处理方法
* @return
*/
@GetMapping("/session/invalid")
@ResponseStatus(HttpStatus.UNAUTHORIZED)
public SimpleResponse sessionInvalid(){
String message = "session失效";
return new SimpleResponse(message);
}
当session过期失效后就会返回我们设定的信息。
Session并发控制:
①加入:
.maximumSessions(1) //系统中允许同一个用户产生的session最大数量
.expiredSessionStrategy(new ImoocExpiredSessionStrategy())
.and()
②新建session过期策略的实现类:
package security.browser.session;
import org.springframework.security.web.session.SessionInformationExpiredEvent;
import org.springframework.security.web.session.SessionInformationExpiredStrategy;
import javax.servlet.ServletException;
import java.io.IOException;
/**
* session过期策略的实现类
*/
public class ImoocExpiredSessionStrategy implements SessionInformationExpiredStrategy {
/**
* @param sessionInformationExpiredEvent:拥有超时前的request和response
* @throws IOException
* @throws ServletException
*/
@Override
public void onExpiredSessionDetected(SessionInformationExpiredEvent sessionInformationExpiredEvent) throws IOException, ServletException {
sessionInformationExpiredEvent.getResponse().setContentType("application/json;charset=UTF-8");
sessionInformationExpiredEvent.getResponse().getWriter().write("并发登录!");
}
}
③如果当同一个用户的session数量达到最大后,阻止该用户在其他处的继续登录,只需要加入
.maxSessionsPreventsLogin(true)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**