java – 在wicket中,结合wicket:与IAuthorizationStrategy的链接

我在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将其呈现为不可见

上一篇:php – 根据特定客户端ID过滤对控制器操作的访问的最佳方法


下一篇:javascript – 为什么我总是在jquery ajax的情况下得到401(未授权)错误