From 99edb798a22b9020408eb4331c77f01b76b033cb Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Lesaint?= Date: Tue, 29 Nov 2016 14:28:43 +0100 Subject: [PATCH] SONAR-8416 move handling logic out from UnauthorizedException and to AuthenticationError --- .../authentication/AuthenticationError.java | 20 ++++++++++++++++-- .../authentication/UnauthorizedException.java | 21 ------------------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/authentication/AuthenticationError.java b/server/sonar-server/src/main/java/org/sonar/server/authentication/AuthenticationError.java index 5376261766c..c17c7028e3f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/authentication/AuthenticationError.java +++ b/server/sonar-server/src/main/java/org/sonar/server/authentication/AuthenticationError.java @@ -19,17 +19,21 @@ */ package org.sonar.server.authentication; +import com.google.common.base.Charsets; import java.io.IOException; +import java.io.UnsupportedEncodingException; import javax.servlet.http.HttpServletResponse; import org.sonar.api.server.authentication.UnauthorizedException; import org.sonar.api.utils.log.Logger; import org.sonar.api.utils.log.Loggers; import static java.lang.String.format; -import static org.sonar.api.server.authentication.UnauthorizedException.UNAUTHORIZED_PATH; +import static java.net.URLEncoder.encode; public class AuthenticationError { + private static final String UNAUTHORIZED_PATH = "/sessions/unauthorized"; + private static final String UNAUTHORIZED_PATH_WITH_MESSAGE = UNAUTHORIZED_PATH + "?message=%s"; private static final Logger LOGGER = Loggers.get(AuthenticationError.class); private AuthenticationError() { @@ -47,7 +51,19 @@ public class AuthenticationError { } public static void handleUnauthorizedError(UnauthorizedException e, HttpServletResponse response) { - redirectTo(response, e.getPath()); + redirectTo(response, getPath(e)); + } + + private static String getPath(UnauthorizedException e) { + return format(UNAUTHORIZED_PATH_WITH_MESSAGE, encodeMessage(e.getMessage())); + } + + private static String encodeMessage(String message) { + try { + return encode(message, Charsets.UTF_8.name()); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException(format("Fail to encode %s", message), e); + } } private static void redirectToUnauthorized(HttpServletResponse response) { diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/UnauthorizedException.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/UnauthorizedException.java index a2713e5d87e..190e8afc497 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/UnauthorizedException.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/authentication/UnauthorizedException.java @@ -19,12 +19,6 @@ */ package org.sonar.api.server.authentication; -import com.google.common.base.Charsets; -import java.io.UnsupportedEncodingException; - -import static java.lang.String.format; -import static java.net.URLEncoder.encode; - /** * This exception should be used when a functional error is generated by an Identity Provider plugin. * The user will be redirected to an unauthorized page and the exception's message will be displayed in the UI. @@ -33,9 +27,6 @@ import static java.net.URLEncoder.encode; */ public class UnauthorizedException extends RuntimeException { - public static final String UNAUTHORIZED_PATH = "/sessions/unauthorized"; - private static final String UNAUTHORIZED_PATH_WITH_MESSAGE = UNAUTHORIZED_PATH + "?message=%s"; - public UnauthorizedException(String message) { super(message); } @@ -43,16 +34,4 @@ public class UnauthorizedException extends RuntimeException { public UnauthorizedException(String message, Throwable cause) { super(message, cause); } - - public String getPath() { - return format(UNAUTHORIZED_PATH_WITH_MESSAGE, encodeMessage(getMessage())); - } - - private static String encodeMessage(String message) { - try { - return encode(message, Charsets.UTF_8.name()); - } catch (UnsupportedEncodingException unsupportedException) { - throw new IllegalStateException(format("Fail to encode %s", message), unsupportedException); - } - } } -- 2.39.5