/******************************************************************************* * Copyright (c) 2015 Red Hat, Inc. Distributed under license by Red Hat, Inc. * All rights reserved. This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.restclient.authorization; import org.apache.commons.lang.StringUtils; import com.openshift.restclient.OpenShiftException; import com.openshift.restclient.model.IStatus; /** * @author Jeff Cantrill */ public class UnauthorizedException extends OpenShiftException { private static final long serialVersionUID = -3999801367045252906L; private static final String MSG_BASE = "Unauthorized to access resource."; private String message; private IStatus status; private IAuthorizationDetails details; public UnauthorizedException(IAuthorizationDetails details) { this(details, null); } public UnauthorizedException(IAuthorizationDetails details, IStatus status) { super(String.format("%s See the authorization details for additional information or contact your system administrator.", MSG_BASE)); this.status = status; this.details = details; if(details != null) { if(StringUtils.isNotBlank(details.getScheme())){ message = String.format("%s You can access the server using %s authentication.", MSG_BASE, details.getScheme()); }else message = details.getMessage(); }else message = super.getMessage(); } public IAuthorizationDetails getAuthorizationDetails() { return details; } @Override public String getMessage() { return message; } @Override public IStatus getStatus() { return this.status; } }