Remove unused exception
This commit is contained in:
parent
8b65c11e1e
commit
e25252dc69
|
@ -124,7 +124,6 @@ import org.whispersystems.textsecuregcm.mappers.IOExceptionMapper;
|
||||||
import org.whispersystems.textsecuregcm.mappers.ImpossiblePhoneNumberExceptionMapper;
|
import org.whispersystems.textsecuregcm.mappers.ImpossiblePhoneNumberExceptionMapper;
|
||||||
import org.whispersystems.textsecuregcm.mappers.InvalidWebsocketAddressExceptionMapper;
|
import org.whispersystems.textsecuregcm.mappers.InvalidWebsocketAddressExceptionMapper;
|
||||||
import org.whispersystems.textsecuregcm.mappers.NonNormalizedPhoneNumberExceptionMapper;
|
import org.whispersystems.textsecuregcm.mappers.NonNormalizedPhoneNumberExceptionMapper;
|
||||||
import org.whispersystems.textsecuregcm.mappers.RateLimitChallengeExceptionMapper;
|
|
||||||
import org.whispersystems.textsecuregcm.mappers.RateLimitExceededExceptionMapper;
|
import org.whispersystems.textsecuregcm.mappers.RateLimitExceededExceptionMapper;
|
||||||
import org.whispersystems.textsecuregcm.mappers.ServerRejectedExceptionMapper;
|
import org.whispersystems.textsecuregcm.mappers.ServerRejectedExceptionMapper;
|
||||||
import org.whispersystems.textsecuregcm.metrics.ApplicationShutdownMonitor;
|
import org.whispersystems.textsecuregcm.metrics.ApplicationShutdownMonitor;
|
||||||
|
@ -717,13 +716,6 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
registerCorsFilter(environment);
|
registerCorsFilter(environment);
|
||||||
registerExceptionMappers(environment, webSocketEnvironment, provisioningEnvironment);
|
registerExceptionMappers(environment, webSocketEnvironment, provisioningEnvironment);
|
||||||
|
|
||||||
RateLimitChallengeExceptionMapper rateLimitChallengeExceptionMapper =
|
|
||||||
new RateLimitChallengeExceptionMapper(rateLimitChallengeOptionManager);
|
|
||||||
|
|
||||||
environment.jersey().register(rateLimitChallengeExceptionMapper);
|
|
||||||
webSocketEnvironment.jersey().register(rateLimitChallengeExceptionMapper);
|
|
||||||
provisioningEnvironment.jersey().register(rateLimitChallengeExceptionMapper);
|
|
||||||
|
|
||||||
environment.jersey().property(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE);
|
environment.jersey().property(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE);
|
||||||
webSocketEnvironment.jersey().property(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE);
|
webSocketEnvironment.jersey().property(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE);
|
||||||
provisioningEnvironment.jersey().property(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE);
|
provisioningEnvironment.jersey().property(ServerProperties.UNWRAP_COMPLETION_STAGE_IN_WRITER_ENABLE, Boolean.TRUE);
|
||||||
|
|
|
@ -72,7 +72,6 @@ import org.whispersystems.textsecuregcm.entities.OutgoingMessageEntityList;
|
||||||
import org.whispersystems.textsecuregcm.entities.SendMessageResponse;
|
import org.whispersystems.textsecuregcm.entities.SendMessageResponse;
|
||||||
import org.whispersystems.textsecuregcm.entities.SendMultiRecipientMessageResponse;
|
import org.whispersystems.textsecuregcm.entities.SendMultiRecipientMessageResponse;
|
||||||
import org.whispersystems.textsecuregcm.entities.StaleDevices;
|
import org.whispersystems.textsecuregcm.entities.StaleDevices;
|
||||||
import org.whispersystems.textsecuregcm.limits.RateLimitChallengeException;
|
|
||||||
import org.whispersystems.textsecuregcm.limits.RateLimiters;
|
import org.whispersystems.textsecuregcm.limits.RateLimiters;
|
||||||
import org.whispersystems.textsecuregcm.metrics.MessageMetrics;
|
import org.whispersystems.textsecuregcm.metrics.MessageMetrics;
|
||||||
import org.whispersystems.textsecuregcm.metrics.UserAgentTagUtil;
|
import org.whispersystems.textsecuregcm.metrics.UserAgentTagUtil;
|
||||||
|
@ -163,7 +162,7 @@ public class MessageController {
|
||||||
@HeaderParam("X-Forwarded-For") String forwardedFor,
|
@HeaderParam("X-Forwarded-For") String forwardedFor,
|
||||||
@PathParam("destination") UUID destinationUuid,
|
@PathParam("destination") UUID destinationUuid,
|
||||||
@NotNull @Valid IncomingMessageList messages)
|
@NotNull @Valid IncomingMessageList messages)
|
||||||
throws RateLimitExceededException, RateLimitChallengeException {
|
throws RateLimitExceededException {
|
||||||
|
|
||||||
if (source.isEmpty() && accessKey.isEmpty()) {
|
if (source.isEmpty() && accessKey.isEmpty()) {
|
||||||
throw new WebApplicationException(Response.Status.UNAUTHORIZED);
|
throw new WebApplicationException(Response.Status.UNAUTHORIZED);
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2021 Signal Messenger, LLC
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.whispersystems.textsecuregcm.limits;
|
|
||||||
|
|
||||||
import java.time.Duration;
|
|
||||||
import org.whispersystems.textsecuregcm.storage.Account;
|
|
||||||
|
|
||||||
public class RateLimitChallengeException extends Exception {
|
|
||||||
|
|
||||||
private final Account account;
|
|
||||||
private final Duration retryAfter;
|
|
||||||
|
|
||||||
public RateLimitChallengeException(final Account account, final Duration retryAfter) {
|
|
||||||
this.account = account;
|
|
||||||
this.retryAfter = retryAfter;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Account getAccount() {
|
|
||||||
return account;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Duration getRetryAfter() {
|
|
||||||
return retryAfter;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2021 Signal Messenger, LLC
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-only
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.whispersystems.textsecuregcm.mappers;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import javax.ws.rs.core.Response;
|
|
||||||
import javax.ws.rs.ext.ExceptionMapper;
|
|
||||||
import org.whispersystems.textsecuregcm.entities.RateLimitChallenge;
|
|
||||||
import org.whispersystems.textsecuregcm.limits.RateLimitChallengeException;
|
|
||||||
import org.whispersystems.textsecuregcm.limits.RateLimitChallengeOptionManager;
|
|
||||||
|
|
||||||
public class RateLimitChallengeExceptionMapper implements ExceptionMapper<RateLimitChallengeException> {
|
|
||||||
|
|
||||||
private final RateLimitChallengeOptionManager rateLimitChallengeOptionManager;
|
|
||||||
|
|
||||||
public RateLimitChallengeExceptionMapper(final RateLimitChallengeOptionManager rateLimitChallengeOptionManager) {
|
|
||||||
this.rateLimitChallengeOptionManager = rateLimitChallengeOptionManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Response toResponse(final RateLimitChallengeException exception) {
|
|
||||||
return Response.status(428)
|
|
||||||
.entity(new RateLimitChallenge(UUID.randomUUID().toString(),
|
|
||||||
rateLimitChallengeOptionManager.getChallengeOptions(exception.getAccount())))
|
|
||||||
.header("Retry-After", exception.getRetryAfter().toSeconds())
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue