我在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()
方法。