@Inject public CertificateManagerImpl(Config config, SignatureHandler signer, WaveSignatureVerifier verifier, CertPathStore certPathStore) { this.disableVerfication = config.getBoolean("federation.waveserver_disable_verification"); this.waveSigner = signer; // for now, we just support a single signer this.localDomains = ImmutableSet.of(signer.getDomain()); this.verifier = verifier; this.certPathStore = certPathStore; this.signerInfoRequests = Maps.newHashMap(); if (disableVerfication) { LOG.warning("** SIGNATURE VERIFICATION DISABLED ** " + "see configuration federation.waveserver_disable_verification"); } }
MockitoAnnotations.initMocks(this); when(localSigner.getDomain()).thenReturn(DOMAIN); when(localSigner.getSignerInfo()).thenReturn(null); when(localSigner.sign(Matchers.<ByteStringMessage<ProtocolWaveletDelta>>any())) .thenReturn(ImmutableList.<ProtocolSignature>of());
@Override public ProtocolSignedDelta signDelta(ByteStringMessage<ProtocolWaveletDelta> delta) { // TODO: support extended address paths. For now, there will be exactly // one signature, and we don't support federated groups. Preconditions.checkState(delta.getMessage().getAddressPathCount() == 0); ProtocolSignedDelta.Builder signedDelta = ProtocolSignedDelta.newBuilder(); signedDelta.setDelta(delta.getByteString()); signedDelta.addAllSignature(waveSigner.sign(delta)); return signedDelta.build(); }
/** * Constructor. * * @param listenerExecutor executes callback listeners * @param certificateManager provider of certificates; it also determines which * domains this wave server regards as local wavelets. * @param federationRemote federation remote interface * @param waveMap records the waves and wavelets in memory */ @Inject WaveServerImpl(@ListenerExecutor Executor listenerExecutor, CertificateManager certificateManager, @FederationRemoteBridge WaveletFederationProvider federationRemote, WaveMap waveMap) { this.listenerExecutor = listenerExecutor; this.certificateManager = certificateManager; this.federationRemote = federationRemote; this.waveMap = waveMap; LOG.info("Wave Server configured to host local domains: " + certificateManager.getLocalDomains()); // Preemptively add our own signer info to the certificate manager SignerInfo signerInfo = certificateManager.getLocalSigner().getSignerInfo(); if (signerInfo != null) { try { certificateManager.storeSignerInfo(signerInfo.toProtoBuf()); } catch (SignatureException e) { LOG.severe("Failed to add our own signer info to the certificate store", e); } } }
MockitoAnnotations.initMocks(this); when(localSigner.getDomain()).thenReturn(DOMAIN); when(localSigner.getSignerInfo()).thenReturn(null); when(localSigner.sign(Matchers.<ByteStringMessage<ProtocolWaveletDelta>>any())) .thenReturn(ImmutableList.<ProtocolSignature>of());