按照之前的文章进行配置(Springboot + Security + Cas 整合 传送门:https://blog.csdn.net/W_Meng_H/article/details/86673630),每次用户登录总是返回首页,原因是拦截的是 login ,登录成功后,依然会执行 login 方法。
解决方案:
1、单机项目
我们可以在登陆之前,把用户每次访问的公共页面的 路径 存到项目的 session 中,用户登录成功之后,我们在session中获取用户登录前的路径即可。
登录前的路径存入session:
登录成功执行login方法,从session中获取路径,重定向到此页面即可:
使用完session,记得清除session!
这种方式适用于公共方法比较少的项目,如果项目有100多个页面,我们要怎么处理呢?可以使用AOP切面处理!
2、分布式项目
第一种解决方式:同上,分布式的项目就是要解决共享session的问题,使用中间件redis即可。
另一种解决方式:使用 nginx 负载均衡的 ip_hash 算法。
3、前后端分离项目
cas登录后,处理好返回的接口方法即可,返回的JSON怎么设计需要根据各自项目的业务需求来。
如果大家有更好的方法,望指点!