在Wicket中,如何将wicket:link与IAuthorizationStrategy结合使用?

4

我在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访问,并在其他情况下将其渲染为不可见状态,但我想知道是否有现成的解决方案来解决这个问题。为了澄清:我只使用IAuthorizationStrategyisInstantiationAuthorized()方法。


1
@esko:感谢您的编辑,我之前还不知道嵌入链接的用法。 - Sean Patrick Floyd
没问题 :) 记住,这个网站是由程序员为程序员构建的,在基本外观下有很多巧妙的功能。 - Esko
1个回答

3

你有没有可能发布一些你所做的样例?这会帮助像我这样的其他人提前了解,因为我认为你正尝试着做我想做的事情。 - stevemac
长官,我明天会从办公室开始做这件事情。 - Sean Patrick Floyd
好的,我在http://code.google.com/p/wicket-component-auth/创建了一个项目,你可以直接获取代码或者注册并帮助我改进它。 - Sean Patrick Floyd
1
我现在就去那里看看。 - stevemac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接