Я использую 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
, и делает их невидимыми в противном случае, но мне интересно, есть ли выход решение этой проблемы. Для пояснения: я использую только isInstantiationAuthorized()
метод IAuthorizationStrategy
.