Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Wicket 1.5-如何配置链接生成的url?_Security_Url_Hyperlink_Wicket_Wicket 1.5 - Fatal编程技术网

Security 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); } });

我正在编写一个wicket 1.5应用程序,出于安全原因,我需要控制url的呈现方式

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安全性。请考虑投票我的最后评论如下:)。非常感谢。