今天在用acegi做系统验证的时候碰到几个问题:
配置好acegi+struts2+spring+hibernate后。
1、登录acegi验证失败
在struts2中,用标签书写登录页面,如下所示:
<s:form action="/loginCheck.htm" method="post" enctype="multipart/form-data">
<s:textfield name="j_username" label="%{getText('loginName')}"></s:textfield>
<s:password name="j_password" 加号,但不对特殊字符编码。
,觉得没啥问题,也就把该标签加上去了。)
去掉该标签后,成功验证登录。
2、成功登录后,自动跳转到favicon.ico文件
这是个老问题,之前一直就存在,没有从根本上解决。只是在根目录下放了一个favicon.ico以避免出现404的错误。但是在google浏览器下,他老是会弹出一个下载框,下载favicon.ico。
在一个偶然的情况,发现有人说是用了acegi的问题,然后在baidu上查找:acegi favicon.ico
无果。
转战google,在第一页就找到了需要的答案,不过是全英文的。
他的意思就是说,在你的权限第一的地方(acegi配置文件重),加上如下一行就可以:
/favicon.ico=PRIV_ANONYMOUS
这一行的意思就是说,允许任何人访问favicon.ico文件,不管是否通过了登录验证。
3、登录成功后跳转的问题
比如,我在acegi配置文件中配置了,如果没有登录,则可以范文a.htm,b.htm,login.html,index.html,favicon.ico。
当我登录的时候,我在地址栏输入地址+不存在的网页地址,比如:http://localhost/fsjhfihfi.html。则他回自动跳转到login.html要求你登录。
但是在登录成功后,会继续跳转到fsjhfihfi.html,而该页面是不存在的。会报404错误,也无法后退。后退就退出去了。。。。
解决方法是,在登录页面,也就是login.html加上清空session的命令。
OK。
相关文章: