*/
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() {
}
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) {
*/
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.
*/
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);
}
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);
- }
- }
}