Security Wicket 1.5-如何配置链接生成的url?
我正在编写一个wicket 1.5应用程序,出于安全原因,我需要控制url的呈现方式Security Wicket 1.5-如何配置链接生成的url?,security,url,hyperlink,wicket,wicket-1.5,Security,Url,Hyperlink,Wicket,Wicket 1.5,我正在编写一个wicket 1.5应用程序,出于安全原因,我需要控制url的呈现方式 mountPage("xxx/yyy", Zzzz.class) 这是非常好的,但我有一个链接侦听器生成的url的问题。例如,如果我将以下链接添加到我的页面: add(new Link<Void>("link-login") { @Override public void onClick() { setResponsePage(LoginPage.class); } });
mountPage("xxx/yyy", Zzzz.class)
这是非常好的,但我有一个链接侦听器生成的url的问题。例如,如果我将以下链接添加到我的页面:
add(new Link<Void>("link-login") {
@Override
public void onClick() {
setResponsePage(LoginPage.class);
}
});
添加(新链接(“链接登录”){
@凌驾
公共void onClick(){
setResponsePage(LoginPage.class);
}
});
我获得以下生成的标记:
<a wicket:id="link-login" href="./home?0-1.ILinkListener-accessMenu-link~login">Login</a>
是否有办法配置生成的url(/home?0-1.ILinkListener访问菜单链接~login
)?至少,我想删除~字符
编辑:
解决了的。。。根据wicket工作人员的说法,生成的href使用“-”作为分隔符对wicket路径进行编码。如果wicket id包含“-”,则将在“~”中进行转换以避免冲突。因此,为了避免这种情况,只需从wicket id中删除“-”。默认情况下,字符-保留为组件id的分隔符。如果您担心安全性,您可以查看此处并尝试使用CryptoMapper。Tx但我关心的是~(tilde),是否可以更改它?此外,我不确定RequestMapper是否允许修改生成的href。不,我认为不可能修改生成的href,除非您构建自定义IRequestMapper实现。也许您可以更改您的组件id,将-替换为\u您签出org.apache.wicket.core.request.mapper.CryptoMapper了吗?。它给了你最终的URL安全性。请考虑投票我的最后评论如下:)。非常感谢。