模块页面登录情况检查

2024-11-22 07:30:06

1、 加入拦截器首先这个验证功能是每个模块都要有的,也就是所有web模块都需要的。在每个controller方法进入前都需要进行检查。可以利用在springmvc中的拦截器功能。因为咱们是多个web模块分布式部署的,所以不能写在某一个web模块中,可以一个公共的web模块,就是gmall-web-util中。位置:

模块页面登录情况检查

2、首先自定义一个拦截器,继承成springmvc的HandlerInterceptorAdapter,通过重新它的preHandle方法实现,业务代码前的校验工作

模块页面登录情况检查

3、登录成功后跳转回来的处理登录成功后写入cookie。

模块页面登录情况检查

4、其中用到了CookieUtil的工具。代码如下:主要三个方法:从cookie中获得值,把值存入cookie, 设定cookie的作用域。

模块页面登录情况检查模块页面登录情况检查

5、检查cookie中是否有token要做的工作:

6、检查cookie中是否有token,如果有把cookie中的昵称取放入页面request属性中.检查是否需要验证登录。如果需要,调用认证模块接口如果认证通过程序照常执行如果认证不通过,跳转到登录页面。检查是否是登陆页面跳转回来的,如果附带新的token则把token保存到cookie中。思路:AuthInterceptor

模块页面登录情况检查

7、 检验方法是否需要验证用户登录状态为了方便程序员在controller方法上标记,可以借助自定义注解的方式。 比如某个controller方法需要验证用户登录,在方法上加入自定义的@LoginRequie。像这样

模块页面登录情况检查

8、如果方法被加了注解,在拦截器中就可以捕捉到。添加自定义注解

模块页面登录情况检查

9、在拦截方法preHandle方法中继续添加,检验登录的代码。

模块页面登录情况检查

10、以上方法,检查业务方法是否需要用户登录,如果需要就把cookie中的token和当前登录人的ip地址发给远程服务器进行登录验证,返回的result是验证结果true或者false。如果验证未登录,直接重定向到登录页面。 以上使用到了一个自定义的HttpclientUtil工具类,放在gmall-common-util模块中。专门负责通过restful风格调用接口。位置:

模块页面登录情况检查

11、代码如下。

模块页面登录情况检查模块页面登录情况检查

12、WebConst是常量类,

模块页面登录情况检查
猜你喜欢