/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.api.security;
import static org.mule.runtime.api.i18n.I18nMessageFactory.createStaticMessage;
import org.mule.runtime.api.i18n.I18nMessage;
import org.mule.runtime.api.security.SecurityException;
/**
* {@code UnauthorisedException} is thrown if authentication fails.
*
* @since 4.0
*/
public class UnauthorisedException extends SecurityException {
/**
* Serial version
*/
private static final long serialVersionUID = -6664384216189042673L;
public UnauthorisedException(I18nMessage message) {
super(message);
}
public UnauthorisedException(I18nMessage message, Throwable cause) {
super(message, cause);
}
public UnauthorisedException(SecurityContext context, String filter, String connector) {
super(constructMessage(context, connector, filter));
}
private static I18nMessage constructMessage(SecurityContext context, String originatingConnectorName, String filter) {
I18nMessage m;
if (context == null) {
m = createStaticMessage("Registered authentication is set to %s but there was no security context on the session",
filter);
} else {
m = createStaticMessage("Authentication failed for principal %s", context.getAuthentication().getPrincipal());
}
m.setNextMessage(createStaticMessage("Authentication denied on connector %s", originatingConnectorName));
return m;
}
}