在wicket中,结合wicket:与IAuthorizationStrategy联系

时间:2010-05-25 12:23:42

标签: java authorization wicket

我在wicket中使用IAuthorizationStrategy来限制对某些页面的访问。但是,我也使用像这样的html菜单:

<div class="siteMenu">
<wicket:link>
    <a href="Page1.html" class="siteMenuLink">
        <wicket:message key="pages.page1.title" />
    </a>
    <a
        href="Page2.html" class="siteMenuLink">
        <wicket:message key="pages.page2.title" />
    </a>
    <a
        href="Page3.html" class="siteMenuLink">
        <wicket:message key="pages.page3.title" />
    </a>
</wicket:link>
</div>

,使用wicket:link机制自动选取和扩展(例如:http://wicket.apache.org/examplenavomatic.html)。但是,IAuthorizationStrategy可能不允许这些目标页面中的一个或多个,因此我可能会导致许多链接导致“权限被拒绝”页面或许多已停用的链接(即 em 标签之类的东西,两者都不漂亮。

我当然可以写一个IComponentInstantiationListener来检查所有BookmarkableLinks,看看他们的目标是否可以通过IAuthorizationStrategy访问,否则会让他们看不见,但我想知道是否有这个问题的解决方案。澄清一下:我只使用IAuthorizationStrategy的{​​{3}}方法。

1 个答案:

答案 0 :(得分:3)

实际上,我是盲目的。答案很明显。扩展授权策略以检查指向页面的链接,然后使用IUnauthorizedComponentInstantiationListener使其不可见