我在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的isInstantiationAuthorized()
方法.
解决方法:
实际上,我是盲人.答案很明显.扩展授权策略以检查指向页面的链接,然后使用IUnauthorizedComponentInstantiationListener
将其呈现为不可见