请教两个关于j_security_check登录表单的问题

03-11-27 baby5

1.登录表单上含有附加码,我希望在验证数据被提交到j_security_check之前先做附加码验证,试着采用了FILTER来做,在WEB.XML中的有关语句如下:

<filter>

<filter-name>loginFilter</filter-name>

<filter-class>cnscn.LoginFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>loginFilter</filter-name>

<url-pattern>/j_security_check</url-pattern>

</filter-mapping>

但经过测试,登录表单的验证数据根本没经过这个过滤器就直接被送到TOMCAT容器的j_security_check里去了。请问该如何解决这个问题?

2.当一个未授权的用户访问TOMCAT容器中的被保护资源时,容器会该资源的URL保存起来,返回给用户登录界面,如果用户登录验证成功,容器会自动将客户端浏览器重定向到最先那个被保护资源的URL。现在的问题是有些应用,比如在站点首页的某个角落放一个j_security_check的登录表单,用户不首先访问被保护的资源,而是直接在表单上填写用户名和密码,验证成功后再FORWARD到一个指定的页面。请问该如何实现?

望各位高手不吝赐教,谢谢!

baby5
2003-11-27 17:36

不好意思,上文中的“WEB.XML中的有关语句”的XML标签被过滤掉了,应该是

<filter>
    <filter-name>loginFilter</filter-name>
    <filter-class>cnscn.LoginFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>loginFilter</filter-name>
    <url-pattern>/j_security_check</url-pattern>
  </filter-mapping>
<p>

rypan
2003-12-03 16:44

还是自己做验证吧。如果非要用,那就写realm

baby5
2003-12-07 10:46

我查了许多英文资料,那两个问题是不可克服的,是TOMCAT的设计缺陷,而且在TOMCAT的下一个版本中好象也没有迹象要修复那些缺陷 :(

daquan198163
2003-12-10 16:04

tomcat的安全域所带来的好处跟麻烦一样多,他不能完全满足需要而且会束缚住你的手脚,比如验证通过但不具有权限时会出现一个错误页面。

我现在用自己实现的权限控制系统了,但tomcat安全域给我许多启发。