Month: April 2010

[Spring Security] 研究了一下Spring Security如何处理 Redirect after Login

为了用户体验,在Login之后应该自动跳到Login之前的页面 Spring Security作为最成熟的WEB安全框架,它是如何处理这个问题的呢? 我研究了一下代码,其机制大概如下:   1.基本步骤     a.某个未登录的用户执行某个操作     b.Spring Security发现它未登录,于是把当前的请求信息(包括URL,参数,POST/GET)存入SESSION     c.然后302到登录页面     d.用户登录     e.Spring Security 发现用户名密码无误,准备执行登录前的请求     f.Spring Security从session中取出上次存入的请求信息,然后发送redirect即可   2.如果上一次请求是POST怎么办? 看代码发现,Spring Security仍然只redirect一个不带参数的URL。但这样的话岂不是导致参数丢失?  不会。因为下一个处理者会从session里面去拿参数。当然下一个处理者不用显式地去访问HttpSession,它仍然只调用 request.getParameter(),只不过这里的request已经被Spring Security封装成为一个特殊的request,这个request覆盖了原始的getParameter()方法。在覆盖的方法中,它会去session里面找参数。    

Trying to find “BaseStrutsTestCase” in www.arsenalist.com ?

"Struts2 in Action" 里提到可以用 "BaseStrutsTestCase" 做为action测试的基类,并且说可以在 www.arsenalist.com 找到。但www.arsenalist.com 是阿森纳俱乐部相关的一个网站! 幸好在Manning的论坛里提到了这个问题,消息灵通人士透露,这个类可以在以下网址找到。 http://depressedprogrammer.wordpress.com/2007/06/18/unit-testing-struts-2-actions-spring-junit/

让extremeTable在翻页后跳到页面上某个 anchor

如果你的 extremeTable 处在页面下方,则每当你翻一页时,就可以必须把滚动条拖下来才能看到table中的下半部分数据。 如果我们让它在翻页后跳到某个anchor,再把这个anchor的位置设置在表格附近,那这个问题就没那么严重了。 那怎么自动跳到某个anchor呢? 很简单:    <ec:table            items="apps"            action="action.do#resultAnchor"    </ec:table>