2012-09-19 2 views
1

wicket 1.5 응용 프로그램을 코딩 중이므로 보안상의 이유로 URL이 렌더링되는 방식을 제어해야합니다.Wicket 1.5 - 링크 생성 된 URL을 구성하는 방법은 무엇입니까?

mountPage("xxx/yyy", Zzzz.class) 

는 우수하지만 난 링크 리스너에 대해 생성 된 URL에 문제가 있습니다. 내 페이지에 다음 링크를 추가하면 exemple를 들어, :

<a wicket:id="link-login" href="./home?0-1.ILinkListener-accessMenu-link~login">Login</a> 

생성 된 URL (./home?0-1.ILinkListener-accessMenu-link~login)를 구성 할 수있는 방법이 있나요 :

add(new Link<Void>("link-login") { 
    @Override 
    public void onClick() { 
    setResponsePage(LoginPage.class); 
    } 
}); 

나는 다음 생성 된 마크 업을 얻을? 적어도 ~ 문자는 제거하고 싶습니다.

편집 :해결 된 ... wicket 직원에 따르면 생성 된 href는 '-'를 구분 기호로 사용하여 개찰 경로를 인코딩합니다. wicket id에 '-'가 있으면 충돌을 피하기 위해 '~'로 변환됩니다. 그래서 그것을 피하기 위해서 당신의 개찰구에서 '-'를 제거하십시오.

+0

org.apache.wicket.core.request.mapper.CryptoMapper를 확인해 보셨습니까? 그것은 당신에게 궁극적 인 URL 보안을 제공합니다. –

+0

제발, 내 마지막 코멘트를 아래 투표를 고려하십시오 :). 고맙습니다! –

답변

2

기본적으로 문자 - 구성 요소 ID의 구분 기호로 예약되어 있습니다. 여기를 보시려면 https://cwiki.apache.org/confluence/display/WICKET/Request+mapping을 사용하고 보안이 염려되는 경우 CryptoMapper를 사용해보십시오.

+0

Tx이지만 내 관심사는 ~ (물결 표시) 정도입니다. 변경할 수 있습니까? – Nico

+0

또한 RequestMapper가 생성 된 href를 수정할 수 있는지 잘 모르겠습니다. – Nico

+0

아니요, 사용자 정의 IRequestMapper 구현을 빌드하지 않는 한 생성 된 href를 수정할 수 없다고 생각합니다. 어쩌면 당신은 당신의 구성 요소 id를 -로 대체 할 수 있습니다. –

관련 문제