我在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}}方法。
答案 0 :(得分:3)
实际上,我是盲目的。答案很明显。扩展授权策略以检查指向页面的链接,然后使用IUnauthorizedComponentInstantiationListener
使其不可见