Vermeiden Sie die Serialisierung von Seiten mit Wicket
wicket 7(.10)
Beim Umgang mit Daten mit hoher Sicherheitsstufe wie Zahlungsseiten und Registrierungsseiten für persönliche Informationen (** Auch wenn verschlüsselt **) Möglicherweise möchten Sie nicht, dass die Daten gespeichert werden (sollten).
VoidPageManagerProvider
VoidPageManagerProvider.java
public class VoidPageManagerProvider extends DefaultPageManagerProvider {
	protected IPageManagerContext 	pageManagerContext;
	protected IPageManager			pageManager;
	/**
	 * @param application
	 */
	public VoidPageManagerProvider(Application application) {
		super(application);
		pageManagerContext = new DefaultPageManagerContext();
		IDataStore dataStore = newDataStore();
		IPageStore pageStore = newPageStore(dataStore);
		pageManager = new VoidPageStoreManager(application.getName(), pageStore, pageManagerContext);
	}
	@Override
	public IPageManager get(IPageManagerContext pageManagerContext) {
		return pageManager;
	}
	@Override
	public IPageStore newPageStore(IDataStore dataStore) {
		return new VoidPageStore();
	}
	@Override
	public IDataStore newDataStore() {
		return new VoidDataStore();
	}
}
VoidPageStore.java
public class VoidPageStore implements IPageStore {
	/**
	 * constructor
	 */
	public VoidPageStore() {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#destroy()
	 */
	@Override
	public void destroy() {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#getPage(java.lang.String, int)
	 * @param sessionId
	 * @param pageId
	 * @return
	 */
	@Override
	public IManageablePage getPage(String sessionId, int pageId) {
		// nothing
		return null;
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#removePage(java.lang.String, int)
	 * @param sessionId
	 * @param pageId
	 */
	@Override
	public void removePage(String sessionId, int pageId) {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#storePage(java.lang.String, org.apache.wicket.page.IManageablePage)
	 * @param sessionId
	 * @param page
	 */
	@Override
	public void storePage(String sessionId, IManageablePage page) {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#unbind(java.lang.String)
	 * @param sessionId
	 */
	@Override
	public void unbind(String sessionId) {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#prepareForSerialization(java.lang.String, java.io.Serializable)
	 * @param sessionId
	 * @param page
	 * @return
	 */
	@Override
	public Serializable prepareForSerialization(String sessionId, Serializable page) {
		return null;
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#restoreAfterSerialization(java.io.Serializable)
	 * @param serializable
	 * @return
	 */
	@Override
	public Object restoreAfterSerialization(Serializable serializable) {
		return null;
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IPageStore#convertToPage(java.lang.Object)
	 * @param page
	 * @return
	 */
	@Override
	public IManageablePage convertToPage(Object page) {
		return null;
	}
}
VoidDataStore.java
public class VoidDataStore implements IDataStore {
	/**
	 * constructor
	 */
	public VoidDataStore() {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#getData(java.lang.String, int)
	 * @param sessionId
	 * @param id
	 * @return
	 */
	@Override
	public byte[] getData(String sessionId, int id) {
		// nothing
		return null;
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#removeData(java.lang.String, int)
	 * @param sessionId
	 * @param id
	 */
	@Override
	public void removeData(String sessionId, int id) {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#removeData(java.lang.String)
	 * @param sessionId
	 */
	@Override
	public void removeData(String sessionId) {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#storeData(java.lang.String, int, byte[])
	 * @param sessionId
	 * @param id
	 * @param data
	 */
	@Override
	public void storeData(String sessionId, int id, byte[] data) {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#destroy()
	 */
	@Override
	public void destroy() {
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#isReplicated()
	 * @return
	 */
	@Override
	public boolean isReplicated() {
		return true;
	}
	/* (Nicht-Javadoc)
	 * @see org.apache.wicket.pageStore.IDataStore#canBeAsynchronous()
	 * @return
	 */
	@Override
	public boolean canBeAsynchronous() {
		return true;
	}
}
VoidPageStoreManager.java
public class VoidPageStoreManager extends PageStoreManager {
	/**
	 * @param applicationName
	 * @param pageStore
	 * @param context
	 */
	public VoidPageStoreManager(String applicationName, IPageStore pageStore, IPageManagerContext context) {
		super(applicationName, pageStore, context);
	}
	@Override
	public boolean supportsVersioning() {
		return false;
	}
}
WicketApplication.java
		// page manager
		setPageManagerProvider(new VoidPageManagerProvider(this));
Keine Fehler mehr ohne Geräte Serializable