/*
* Copyright 2014 Federal Chancellery Austria MOA-ID has been developed in a cooperation between
* BRZ, the Federal Chancellery Austria - ICT staff unit, and Graz University of Technology.
*
* Licensed under the EUPL, Version 1.1 or - as soon they will be approved by the European
* Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in
* compliance with the Licence. You may obtain a copy of the Licence at: http://www.osor.eu/eupl/
*
* Unless required by applicable law or agreed to in writing, software distributed under the Licence
* is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the Licence for the specific language governing permissions and limitations under
* the Licence.
*
* This product combines work with different licenses. See the "NOTICE" text file for details on the
* various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative
* works that you distribute must include a readable copy of the "NOTICE" text file.
*/
package at.gv.egiz.eaaf.core.impl.utils;
import org.apache.commons.lang3.StringUtils;
import at.gv.egiz.eaaf.core.api.data.EAAFConstants;
/**
* Builds a DataURL parameter meant for the security layer implementation to respond to.
*
* @author Paul Ivancsics
* @version $Id$
*/
public class DataUrlBuilder {
/**
* Constructor for DataURLBuilder.
*/
public DataUrlBuilder() {
super();
}
/**
* Constructs a data URL for VerifyIdentityLink
or
* VerifyAuthenticationBlock
, including the MOASessionID
as a parameter.
*
* @param authBaseUrl base URL (context path) of the MOA ID Authentication component, including a
* trailing '/'
* @param authServletName request part of the data URL
* @param pendingReqId sessionID to be included in the dataURL
* @return String
*/
public String buildDataUrl(String authBaseUrl, String authServletName,
final String pendingReqId) {
String dataUrl;
if (!authBaseUrl.endsWith("/")) {
authBaseUrl += "/";
}
if (authServletName.startsWith("/")) {
authServletName = authServletName.substring(1);
}
dataUrl = authBaseUrl + authServletName;
if (StringUtils.isNotEmpty(pendingReqId)) {
dataUrl =
addParameter(dataUrl, EAAFConstants.PARAM_HTTP_TARGET_PENDINGREQUESTID, pendingReqId);
}
return dataUrl;
}
/**
* Method addParameter.
*
* @param urlString represents the url
* @param paramname is the parameter to be added
* @param value is the value of that parameter
* @return String
*/
private String addParameter(final String urlString, final String paramname, final String value) {
String url = urlString;
if (paramname != null) {
if (url.indexOf("?") < 0) {
url += "?";
} else {
url += "&";
}
url += paramname + "=" + value;
}
return url;
}
}