I say you're making it too complex. Let the proxy be a proxy and force the client to behave properly.