最近,在做权限验证的时候,要通过用户登录,判断用户的权限,根据权限显示不同的东西和操作。这样就登录验证就必须要做了。进入系统的用户必须得登录才能进入系统。否则跳转到登录页面。
在网上也找了不少的资料,大体是用两种方法可以实现。
一、使用struts2的拦截器(Interceptor)
struts2的拦截器很灵活,可以在每个action中配置不同的拦截器,也可以配置通用的。像下面这样……
AuthorityInterceptor.java如下
此种做法可以实现url的拦截,但是,有一点,他只能在拦截器所配置的package下起作用,其他的package下仍然可以不登录通过url访问。还需要在每个package下都配置一遍,我不知道还有没有其他的方法。拦截器给我的感觉就是很灵活,灵活的代价是增加了代码量。不知道理解的对不对?
二、Filter(基于javax.servlet.Filter)
它需要在web.xml中做如下配置
同样要有个java文件与之对应
以上两种方法都能实现防止不经登录直接url访问,但Filter似乎简单些,不知道有没有其他的缺点或者不安全的地方。