URL의 페이지 매개 변수 암호화 및 전송/수신

8936 단어 Wicket
개시하다
BookmarkblePageLink를 사용하여 값이 있는 페이지를 마이그레이션합니다.
URL란에 그렇게 정보가 나오니까 어떻게든 해결해 보자고.

설치 화면
테이블에서 값 보내기

URL에 추가된 페이지 매개 변수는 읽기 어렵습니다.

출처
페이지 파라미터를 지정하는 인코더 디코더를 사용하면 됩니다.
참조: wicket user-guide
Controlling how page parameters areencoded with IPageParameters Enceoder 섹션
먼저 IPage Parameters Encoder를 구현한 Cry pto Pagea Parameters Enceoder를 제작했습니다.
CryptoPageParametersEncoder
public class CryptionPageParametersEncoder implements IPageParametersEncoder{

    @Override
    public PageParameters decodePageParameters(Url url) {

        PageParameters parameters = new PageParameters();

        int i = 0;
        for (String s : url.getSegments())
        {
            parameters.set(i, s);
            ++i;
        }

        for (QueryParameter p : url.getQueryParameters())
        {
            //各パラメーターの暗号化を解除する処理
            parameters.add( 復号化メソッド(p.getKey(),p.getValue())));

        }

        return parameters.isEmpty() ? null : parameters;
    }

    @Override
    public Url encodePageParameters(PageParameters pageParameters) {
        Url url = new Url();

        for (int i = 0; i < pageParameters.getIndexedCount(); ++i)
        {
            url.getSegments().add(pageParameters.get(i).toString());
        }

        for (PageParameters.NamedPair pair : pageParameters.getAllNamed())
        {
            String encryptedKey = "";
            String encryptedValue = "";

            //各パラメーターを暗号化する処理
            encryptedKey = 暗号化メソッドpair.getKey());
            encryptedValue = 暗号化メソッド(pair.getValue());

            QueryParameter param = new QueryParameter(encryptedKey, encryptedValue);
            url.getQueryParameters().add(param);
        }       
        return url;
    }   
}

이어 암호화 교환을 하려는 페이지에 위와 같은 인코더를 Application 종류의 init 방법으로 설치합니다.
MyApplication.java
public class MyApplication extends WebApplication {
    public MyApplication() {
    }

    /**
     * @see org.apache.wicket.Application#getHomePage()
     */
    @Override
    public Class getHomePage() {
        return Page1.class;
    }

    @Override
    protected void init() {
        super.init();

        //Page2ページに作成したエンコーダーをマウント
        mount(new MountedMapper("/cryptedPageParameter/", Page2.class, new CryptionPageParametersEncoder()));
    }
끝맺다
처음에는 이 방법을 모르고 각 페이지의 구조기로 파라미터를 암호화하고 해독하느라 고생했다.
공부했어.감사합니다wicket user-guide

좋은 웹페이지 즐겨찾기