java中filter的问题

蜗牛彪 2013-07-25 11:15:27
为了防止用户直接访问相关的页面,我使用了filter, 如果有用户不登陆直接输入相应的url就在filter中检查是否登陆,没登陆直接跳转到error页面。

现在问题是我有很多个部署好的应用,其中有一个的地址是/ret,剩下几个地址是/ret/module1,/ret/module2。这个module1,module2中都有引用到ret中的页面,用的是<c:import>和<jsp:include>方式去引入的。这时发现在用户直接访问module1和module2中引用了ret中页面的时候filter是不执行的,所以用户还是可以直接访问到某些页面。

如果要避免这种情况是不是要在所有有引用的应用中都给加filter才可以吗,还有没有其他解决方法,求思路
...全文
157 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
withxiaoqi 2013-07-26
  • 打赏
  • 举报
回复
如果是其他项目引用相应页面的话,当前项目的filter肯定没用了。 lz可以在该引用页的表头上添加检查是否存在用户信息session的语句,这样只要加载该页面都会校验,说白了就是把filter中的校验搬到固定页面上去
oh_Maxy 2013-07-25
  • 打赏
  • 举报
回复
filter中的url-mapping 配置成/*不可以实现拦截所有页面的么?
  • 打赏
  • 举报
回复
楼主项目采用了那些技术呢?
蜗牛彪 2013-07-25
  • 打赏
  • 举报
回复
引用 5 楼 withxiaoqi 的回复:
lz是在filter中检查session中有没有用户登陆信息来判断是否登陆吗?如果是的话,应该没问题。
我的确是这么做的,问题是如果是别的项目引用了相应页面,filter就不起作用了,不知道怎么解决
withxiaoqi 2013-07-25
  • 打赏
  • 举报
回复
lz是在filter中检查session中有没有用户登陆信息来判断是否登陆吗?如果是的话,应该没问题。
蜗牛彪 2013-07-25
  • 打赏
  • 举报
回复
引用 1 楼 lingduit 的回复:
楼主项目采用了那些技术呢?
sso单点登陆后对指定区域的用户要求进行二次登陆,类似密码卡那种,使用filter过滤如果没有进行密码卡登陆就reject,结果现在是子项目太多,如果用户直接输入子项目url就可以用sso登陆而不用输入密码卡。我又不想在每个子项目中都加入filter,这样很麻烦。后来发现每个子项目的首页都引用到了门户项目的一个页面,于是我就把这个页面加入到filter的url-parttern中,结果不起作用,如果实在不行估计我得给每个子项目加一个filter了
蜗牛彪 2013-07-25
  • 打赏
  • 举报
回复
引用 2 楼 oh_Maxy 的回复:
filter中的url-mapping 配置成/*不可以实现拦截所有页面的么?
这样好像也不行,因为是2个不同的项目,其中一个引用了另外一个的页面,filter对这个引用的页面好像不起作用

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧