zoukankan      html  css  js  c++  java
  • 关于登录filter拦截的一些思考

      问题导向的解决思路方法:

    1、登录系统设计时,访问需要权限控制的页面时,需要检查每一个请求中的cookie是否有可访问标识,如果有则正常访问,如果没有则跳转到登录页面;(麻烦,增加代码量)

    2、这个时候考虑可以用过滤器的方式,在有请求过来的时候我先把它拦截住,然后在里面做检查cookie的操作;(设计意图明了,去除重复代码)
    3、但是如果访问的是登录页面时,过滤器也会把它拦截下来进行cookie的检查,这样导致了重定向循环的问题;(问题转移)
    4、问题转移到了filter如何设置例外请求的方式;
    5、我们可以在过滤器设置如果请求路径以login为开头,就直接放行;(查找资料)
    6、后来又发现需要例外的地方有点多,比如退出接口和回调接口,也不需要进行检查cookie的检查,这样会导致判断条件增多,而且filter里面加了很多硬编码的东西也不好;(硬编码)
    7、后来我发现可以通过在web.xml中设置初始化参数,将要例外的请求地址放入到初始化参数中,这样可以在过滤器中读取初始化参数,再进行判断;
    8、问题得以解决,后来又看了些博客,感觉这样设计其实也挺麻烦的,再回到问题的根源,我们只是想拦截需要权限才能访问的页面进行权限的检查,那我们可以直接将所有这样的页面前面加一个统一的地址,比如admin/、passport/,这样过滤器只拦截urlpattern为admin的地址。(回归本源)
     
    参考链接:
    filter如何设置例外的请求:http://iqbon.iteye.com/blog/1894438
  • 相关阅读:
    try catch 和\或 finally 的用法
    postgresql与oracle对比
    今天遇到个let: not found
    NTLM相关
    【搜藏】net use命令拓展
    【shell进阶】字符串操作
    【网摘】网上邻居用户密码
    测试导航
    关系代数合并数据 left join
    真正的程序员
  • 原文地址:https://www.cnblogs.com/dali-lyc/p/7295780.html
Copyright © 2011-2022 走看看