断网了……
烟灰学程序一年多了……总在想,要是断网了,我怎么学习……
烟灰就怕断网,断网了,就得完蛋……
常用链接
我的随笔
我的评论
我参与的随笔
随笔分类
(22)
Struts2.1学习(2)
(rss)
Swing_UI开发进度(6)
(rss)
程序开发进度(14)
(rss)
随笔档案
(39)
2010年2月 (2)
2010年1月 (5)
2009年12月 (1)
2009年11月 (2)
2009年8月 (2)
2009年7月 (2)
2009年6月 (2)
2009年5月 (1)
2009年4月 (1)
2009年3月 (6)
2009年2月 (11)
2009年1月 (4)
相册
程序图片
搜索
积分与排名
积分 - 28052
排名 - 178
最新评论
1. re: windows server 2008 安装IIS7碰到的问题
啊啊
--放
2. re: 使用Filter进行非法访问拦截
很久的帖子了,非法访问可以用spring来解决@毕业生
--烟灰这名字被人抢了……
3. re: 使用Filter进行非法访问拦截
评论内容较长,点击标题查看
--毕业生
4. re: windows server 2008 安装IIS7碰到的问题
你这个文章可是帮了我大忙啊......
--myskysoft
5. re: Javascript Remote Object Invoker 6
博主很强大!不错!
--不锈钢水箱
6. re: Javascript Remote Object Invoker 6
恭喜了,向你学习!
--海鲜池
7. re: Javascript Remote Object Invoker 6
是大家看法是打开
--凡客诚品官方网站
8. re: Javascript Remote Object Invoker 2
是空间看时间的方式将
--久久书城
9. re: Javascript Remote Object Invoker 3
是看见的开发时间地方
--凡客诚品官方网
10. re: Javascript Remote Object Invoker 5
阿萨就是大海的
--淘宝网减肥药
阅读排行榜
1. 关于AlphaComposite的理解——Swing UI开发进度 (4861)
2. (转)JDBC与JNDI应用比较(2988)
3. 2009-2-6 再也再也不用JBuilder 搞开发了……(1557)
4. 使用Filter进行非法访问拦截(1540)
5. java LookAndFeel原理 ——Swing UI开发进度(1483)
6. 为了好看,自己做!——Swing UI 开发进度(1314)
7. windows server 2008 安装IIS7碰到的问题(1003)
8. 说说LookAndFeel的工作流程——Swing UI开发进度 (921)
9. 新的一个开始!——Swing UI开发进度 (836)
10. Javascript Remote Object Invoker 3(723)
评论排行榜
1. Javascript Remote Object Invoker 6(5)
2. 使用Filter进行非法访问拦截(4)
3. 关于AlphaComposite的理解——Swing UI开发进度 (3)
4. 2009-2-1 今天开始更新,之后会不断更新 又是一个通宵……(2)
5. 2009-2-6 再也再也不用JBuilder 搞开发了……(2)
6. java LookAndFeel原理 ——Swing UI开发进度(2)
7. 说说LookAndFeel的工作流程——Swing UI开发进度 (2)
8. (转)JDBC与JNDI应用比较(2)
9. windows server 2008 安装IIS7碰到的问题(2)
10. Javascript Remote Object Invoker 5(2)
Powered by:
博客园
模板提供:
沪江博客
IT博客
|
首页
|
发新随笔
|
发新文章
|
联系
| |
管理
使用Filter进行非法访问拦截
因为struts(不论2还是1)不支持,或者说我没找到拦截的方法
所以自己写了一个阻断器,用于阻断特定的网页,或者放过特定的网页访问
下面的附上使用指南
interdictor.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE struts PUBLIC
"-//JavaZone//DTD Interdictor Configuration 1.0//EN"
"interdictor.dtd"
>
<
interdictors
>
<!--
该锁将控制是否使用该interdict
并且该值只能使用boolean型值
当该值为true时,就进行全部放过操作
当该值为false时,就进行阻断操作
-->
<
lock-name
>
interdictLock
</
lock-name
>
<!--
配置debug输出
注意,
-->
<
debug
>
True
</
debug
>
<!--
阻断器配置
-->
<
interdictor
>
<!--
设置阻断器,阻断所有以.jsp为后缀的请求
请注意,必须使用.jsp而不是jsp因为当你拦截servlet的时候
你可以输入servlet作为后缀,所以本拦截机制不会给你默认添加.后缀
-->
<
interdict-suffix
>
.jsp
</
interdict-suffix
>
<
exclude-requests
>
<
request
>
homepage.jsp
</
request
>
<
request
>
login.jsp
</
request
>
<
request
>
register.jsp
</
request
>
<
request
>
index.jsp
</
request
>
<!--
<request>error/error.jsp</request>
-->
<
request
>
template/viewNotePlate.jsp
</
request
>
</
exclude-requests
>
<!--
exclude-requests和interdict-requests两个请求关系详细解释:
1.当阻断请求列表存在,而放过列表不存在时,将只阻断阻断请求列表中元素,而放过其余请求
2.当阻断请求列表不存在,而放过请求列表存在时,将只放过放过请求列表中元素,而阻断所有阻断元素
3.当两个列表都存在的时候,将阻断阻断请求列表中元素,并以放过请求列表中元素为更高权限
例如,两个列表中都有error.jsp,那么该请求将被放过
4.当两个列表都不存在时
注意:这里的所有url都是相对地址,都是危机basecontext之后的所有部分
-->
<
result-page
>
/error/error.jsp
</
result-page
>
<!--
阻断之后跳转的页面
这里是用于重定向的url
-->
</
interdictor
>
</
interdictors
>
interdictor.dtd
<!--
interdictor must is no less than one
-->
<!
ELEMENT interdictors (
lock-name?,
debug,
interdictor+
)
>
<!--
interdictor element
-->
<!
ELEMENT interdictor (
interdict-suffix,
interdict-requests?,
exclude-requests?,
result-page
)
>
<!--
the suffix of the request name
-->
<!
ELEMENT interdict-suffix (#PCDATA)
>
<!--
interdict request list
-->
<!
ELEMENT interdict-requests (
request+
)
>
<!--
excluded request list
-->
<!
ELEMENT exclude-requests (
request+
)
>
<!--
request element
-->
<!
ELEMENT request (#PCDATA)
>
<!--
the when interdict it will redirect to
-->
<!
ELEMENT result-page (#PCDATA)
>
<!--
this name is use in session to control interdictor
-->
<!
ELEMENT lock-name (#PCDATA)
>
<!--
if debug is true ,application will print the infomation on the console
-->
<!
ELEMENT debug (#PCDATA)
>
然后是web.xml
<!--
过滤加载器,防止非法.jsp后缀访问
-->
<!--
除了配置之外,添加自己的
-->
<
filter
>
<
filter-name
>
interdictorFilter
</
filter-name
>
<
filter-class
>
com.javazone.interdict.InterdictFilter
</
filter-class
>
<
init-param
>
<
param-name
>
configFileLocation
</
param-name
>
<
param-value
>
Interdictor.xml
</
param-value
>
</
init-param
>
</
filter
>
<
filter-mapping
>
<
filter-name
>
interdictorFilter
</
filter-name
>
<
url-pattern
>
/*
</
url-pattern
>
</
filter-mapping
>
说明:
1.lock-name是用于session级的锁操作,如果你想在程序里使用重定向,而又不希望下一个定位的网页被拦截掉,需要使用到该锁,具体操作如下
session.put(
"
interdictLock
"
, Boolean.TRUE);
2.注意url的书写正确性,否则会出现不可预知的错误
其他的。。。大家一起找bug,如果找到了就告诉我
这里是下载地址:
3.该阻断器filter配置一定要写到所有filter配置前面,否则起不到拦截的作用
http://www.cnitblog.com/Files/zcy860511/javazone.interdictor.rar
发表于 2009-08-08 13:30
烟灰这名字被人抢了……
阅读(1540)
评论(4)
编辑
收藏
引用
所属分类:
Struts2.1学习
评论
#
re: 使用Filter进行非法访问拦截
回复
更多评论
不错啊12
#
re: 使用Filter进行非法访问拦截
回复
更多评论
好东西啊!
#
re: 使用Filter进行非法访问拦截
回复
更多评论
楼主写的确实是一个好东西,但是我测试时候出现一个问题。就是比如在未登录情况下输入地址
http://localhost:8080/test/log/log.jsp
">
http://localhost:8080/test/log/log.jsp
返回登录界面,地址栏地址依然是
http://localhost:8080/test/log/log.jsp
">
http://localhost:8080/test/log/log.jsp
登录以后,地址栏却显示地址为
http://localhost:8080/test/log/log/log.jsp
如果用户名多次输入错误的话,会造成路径名重复叠加,不知道楼主是否也会出现这样色问题?
#
re: 使用Filter进行非法访问拦截
回复
更多评论
很久的帖子了,非法访问可以用spring来解决@毕业生
刷新评论列表
只有注册用户
登录
后才能发表评论。