/* * 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.core.config.i18n.CoreMessages.authFailedForUser; import static org.mule.runtime.core.config.i18n.CoreMessages.authSetButNoContext; import static org.mule.runtime.core.config.i18n.CoreMessages.authorizationDeniedOnEndpoint; import org.mule.runtime.api.security.SecurityException; import org.mule.runtime.core.api.Event; import org.mule.runtime.api.i18n.I18nMessage; /** * <code>NotPermittedException</code> is thrown if the user isn't authorized to perform an action. */ public class NotPermittedException extends SecurityException { /** * Serial version */ private static final long serialVersionUID = -6664384216189042673L; public NotPermittedException(I18nMessage message) { super(message); } public NotPermittedException(I18nMessage message, Throwable cause) { super(message, cause); } public NotPermittedException(Event event, SecurityContext context, SecurityFilter filter) { super(constructMessage(context, event.getContext().getOriginatingConnectorName(), filter)); } private static I18nMessage constructMessage(SecurityContext context, String originatingConnectorName, SecurityFilter filter) { I18nMessage m; if (context == null) { m = authSetButNoContext(filter.getClass().getName()); } else { m = authFailedForUser(context.getAuthentication().getPrincipal()); } m.setNextMessage(authorizationDeniedOnEndpoint(originatingConnectorName)); return m; } }