Skip to content

Bkalashi.basic auth support #256

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
support basic auth
  • Loading branch information
bkalashi committed Sep 15, 2022
commit 9763063c1cb4d2ae127441f35b56afdb1c811b47
2 changes: 2 additions & 0 deletions src/gov/nasa/worldwind/avlist/AVKey.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ public interface AVKey // TODO: Eliminate unused constants, if any
final String BALLOON = "gov.nasa.worldwind.avkey.Balloon";
final String BALLOON_TEXT = "gov.nasa.worldwind.avkey.BalloonText";
final String BACK = "gov.nasa.worldwind.avkey.Back";
final String BASIC_AUTH_USERNAME = "gov.nasa.worldwind.avkey.BasicAuthUsername";
final String BASIC_AUTH_PASSWORD = "gov.nasa.worldwind.avkey.BasicAuthPassword";
final String BEGIN = "gov.nasa.worldwind.avkey.Begin";
final String BIG_ENDIAN = "gov.nasa.worldwind.avkey.BigEndian";
final String BOTTOM = "gov.nasa.worldwind.avkey.Bottom";
Expand Down
7 changes: 7 additions & 0 deletions src/gov/nasa/worldwind/layers/rpf/RPFRetriever.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ class RPFRetriever extends WWObjectImpl implements Retriever
public static final int RESPONSE_CODE_OK = 1;
public static final int RESPONSE_CODE_NO_CONTENT = 2;

protected String basicAuthenticationEncodedString;

public RPFRetriever(RPFGenerator.RPFServiceInstance service, URL url, RetrievalPostProcessor postProcessor)
{
if (service == null)
Expand Down Expand Up @@ -174,6 +176,11 @@ public void setStaleRequestLimit(int staleRequestLimit)
this.staleRequestLimit = staleRequestLimit;
}

@Override
public void setBasicAuthentication(String basicAuthorizationString) {
this.basicAuthenticationEncodedString = basicAuthorizationString;
}

public final RPFGenerator.RPFServiceInstance getService()
{
return this.service;
Expand Down
28 changes: 28 additions & 0 deletions src/gov/nasa/worldwind/ogc/wcs/wcs100/WCS100DescribeCoverage.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,30 @@ public class WCS100DescribeCoverage extends AbstractXMLEventParser
protected XMLEventParserContext parserContext;
protected List<WCS100CoverageOffering> coverageOfferings = new ArrayList<WCS100CoverageOffering>(1);

/**
* Retrieve WCS 100 Coverage
*
* @param uri uri
* @param coverageName name of coverage
* @return WCS100DescribeCoverage
* @throws URISyntaxException URI Syntax incorrect
*/
public static WCS100DescribeCoverage retrieve(URI uri, final String coverageName) throws URISyntaxException
{
return retrieve(uri, coverageName, null, null);
}

/**
* Retrieve WCS 100 Coverage
*
* @param uri uri
* @param coverageName name of coverage
* @param basicAuthUsername Basic Authentication Username
* @param basicAuthPassword Basic Authentication Password
* @return WCS100DescribeCoverage
* @throws URISyntaxException URI Syntax incorrect
*/
public static WCS100DescribeCoverage retrieve(URI uri, final String coverageName, String basicAuthUsername, String basicAuthPassword) throws URISyntaxException
{
Request request = new Request(uri, "WCS")
{
Expand All @@ -46,6 +69,11 @@ protected void initialize(String service)
}

public WCS100DescribeCoverage(Object docSource)
{
this(docSource, null, null);
}

public WCS100DescribeCoverage(Object docSource, String basicAuthUsername, String basicAuthPassword)
{
super(OGCConstants.WCS_1_0_0_NAMESPACE_URI);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public class LocalRasterServerRetriever extends WWObjectImpl implements Retrieve
protected long submitTime;
protected long beginTime;
protected long endTime;

protected String basicAuthenticationEncodedString;
public LocalRasterServerRetriever(AVList params, RasterServer rasterServer, RetrievalPostProcessor postProcessor)
{
if (null != params)
Expand Down Expand Up @@ -155,6 +155,11 @@ public void setStaleRequestLimit(int staleRequestLimit)
this.staleRequestLimit = staleRequestLimit;
}

@Override
public void setBasicAuthentication(String basicAuthorizationString) {
this.basicAuthenticationEncodedString = basicAuthorizationString;
}

public Retriever call() throws Exception
{
try
Expand Down
2 changes: 2 additions & 0 deletions src/gov/nasa/worldwind/retrieve/Retriever.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,6 @@ public interface Retriever extends WWObject, java.util.concurrent.Callable<Retri
int getStaleRequestLimit();

void setStaleRequestLimit(int staleRequestLimit);

void setBasicAuthentication(String basicAuthorizationString);
}
11 changes: 11 additions & 0 deletions src/gov/nasa/worldwind/retrieve/URLRetriever.java
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public abstract class URLRetriever extends WWObjectImpl implements Retriever
protected long submitTime;
protected long beginTime;
protected long endTime;
protected String basicAuthenticationEncodedStr;

/**
* Create the appropriate retriever for a URL's protocol.
Expand Down Expand Up @@ -311,6 +312,12 @@ protected URLConnection openConnection() throws IOException
this.connection = this.url.openConnection(proxy);
else
this.connection = this.url.openConnection();

// Set optional basic authentication
if (basicAuthenticationEncodedStr != null)
{
this.connection.setRequestProperty("Authorization", "Basic " + basicAuthenticationEncodedStr);
}
}
catch (java.io.IOException e)
{
Expand Down Expand Up @@ -586,6 +593,10 @@ protected long getExpiration(URLConnection connection)
return expiration;
}

public void setBasicAuthentication(String basicAuthenticationEncodedStr){
this.basicAuthenticationEncodedStr = basicAuthenticationEncodedStr;
}

@Override
public boolean equals(Object o)
{
Expand Down
9 changes: 9 additions & 0 deletions src/gov/nasa/worldwind/terrain/BasicElevationModel.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ public class BasicElevationModel extends AbstractElevationModel implements BulkR
// Model resource properties.
protected static final int RESOURCE_ID_OGC_CAPABILITIES = 1;

protected String basicAuthorizationString;

public BasicElevationModel(AVList params)
{
if (params == null)
Expand Down Expand Up @@ -124,6 +126,13 @@ public BasicElevationModel(AVList params)
if (b != null)
this.setValue(AVKey.DELETE_CACHE_ON_EXIT, true);

String basicAuthUsername = params.getStringValue(AVKey.BASIC_AUTH_USERNAME);
String basicAuthPassword = params.getStringValue(AVKey.BASIC_AUTH_PASSWORD);
if(basicAuthUsername != null && basicAuthPassword != null) {
basicAuthorizationString = Base64.getEncoder().encodeToString(
(basicAuthUsername + ":" + basicAuthPassword).getBytes());
}

// Set some fallback values if not already set.
setFallbacks(params);

Expand Down