updated to get middleware working
This commit is contained in:
BIN
etc/security/keystore.jks
Normal file
BIN
etc/security/keystore.jks
Normal file
Binary file not shown.
BIN
etc/security/prod-hpmiddleware-keystore.jks
Normal file
BIN
etc/security/prod-hpmiddleware-keystore.jks
Normal file
Binary file not shown.
BIN
etc/security/prod-hpmiddleware-truststore.jks
Normal file
BIN
etc/security/prod-hpmiddleware-truststore.jks
Normal file
Binary file not shown.
9
etc/security/project
Normal file
9
etc/security/project
Normal file
File diff suppressed because one or more lines are too long
BIN
etc/security/truststore.jks
Normal file
BIN
etc/security/truststore.jks
Normal file
Binary file not shown.
@@ -120,6 +120,8 @@ public class MonApiApplication extends Application<MonApiConfiguration> {
|
|||||||
authInitParams.put("ConnPoolMinIdleTime", config.middleware.connPoolMinIdleTime);
|
authInitParams.put("ConnPoolMinIdleTime", config.middleware.connPoolMinIdleTime);
|
||||||
authInitParams.put("ConnRetryTimes", config.middleware.connRetryTimes);
|
authInitParams.put("ConnRetryTimes", config.middleware.connRetryTimes);
|
||||||
authInitParams.put("ConnRetryInterval", config.middleware.connRetryInterval);
|
authInitParams.put("ConnRetryInterval", config.middleware.connRetryInterval);
|
||||||
|
authInitParams.put("AdminToken", config.middleware.adminToken);
|
||||||
|
|
||||||
|
|
||||||
Dynamic tokenAuthFilter = environment.servlets().addFilter("token-auth", new TokenAuth());
|
Dynamic tokenAuthFilter = environment.servlets().addFilter("token-auth", new TokenAuth());
|
||||||
tokenAuthFilter.addMappingForUrlPatterns(null, true, "/");
|
tokenAuthFilter.addMappingForUrlPatterns(null, true, "/");
|
||||||
@@ -131,8 +133,10 @@ public class MonApiApplication extends Application<MonApiConfiguration> {
|
|||||||
mockAuthenticationFilter.addMappingForUrlPatterns(null, true, "/");
|
mockAuthenticationFilter.addMappingForUrlPatterns(null, true, "/");
|
||||||
mockAuthenticationFilter.addMappingForUrlPatterns(null, true, "/v2.0/*");
|
mockAuthenticationFilter.addMappingForUrlPatterns(null, true, "/v2.0/*");
|
||||||
}
|
}
|
||||||
|
ArrayList<String> list = new ArrayList();
|
||||||
|
list.add("heat_stack_owner");
|
||||||
Dynamic postAuthenticationFilter = environment.servlets()
|
Dynamic postAuthenticationFilter = environment.servlets()
|
||||||
.addFilter("post-auth", new PostAuthenticationFilter(Collections.<String>singletonList("")));
|
.addFilter("post-auth", new PostAuthenticationFilter(list));//Collections.<String>singletonList("")));
|
||||||
postAuthenticationFilter.addMappingForUrlPatterns(null, true, "/");
|
postAuthenticationFilter.addMappingForUrlPatterns(null, true, "/");
|
||||||
postAuthenticationFilter.addMappingForUrlPatterns(null, true, "/v2.0/*");
|
postAuthenticationFilter.addMappingForUrlPatterns(null, true, "/v2.0/*");
|
||||||
|
|
||||||
|
@@ -45,5 +45,6 @@ public class MiddlewareConfiguration {
|
|||||||
@NotEmpty @JsonProperty public String connPoolMinIdleTime;
|
@NotEmpty @JsonProperty public String connPoolMinIdleTime;
|
||||||
@NotEmpty @JsonProperty public String connRetryTimes;
|
@NotEmpty @JsonProperty public String connRetryTimes;
|
||||||
@NotEmpty @JsonProperty public String connRetryInterval;
|
@NotEmpty @JsonProperty public String connRetryInterval;
|
||||||
|
@NotEmpty @JsonProperty public String adminToken;
|
||||||
@NotNull @JsonProperty public List<String> rolesToMatch;
|
@NotNull @JsonProperty public List<String> rolesToMatch;
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
import com.hpcloud.mon.resource.exception.Exceptions;
|
import com.hpcloud.mon.resource.exception.Exceptions;
|
||||||
import com.hpcloud.mon.resource.exception.Exceptions.FaultType;
|
import com.hpcloud.mon.resource.exception.Exceptions.FaultType;
|
||||||
|
import com.hp.csbu.cc.middleware.ExceptionHandler.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Authenticates requests using header information from the CsMiddleware. Provides the X-TENANT-ID
|
* Authenticates requests using header information from the CsMiddleware. Provides the X-TENANT-ID
|
||||||
@@ -95,9 +96,27 @@ public class PreAuthenticationFilter implements Filter {
|
|||||||
res.setContentType(MediaType.APPLICATION_JSON);
|
res.setContentType(MediaType.APPLICATION_JSON);
|
||||||
res.setStatus(responseWrapper.statusCode);
|
res.setStatus(responseWrapper.statusCode);
|
||||||
String output = Exceptions.buildLoggedErrorMessage(FaultType.UNAUTHORIZED,
|
String output = Exceptions.buildLoggedErrorMessage(FaultType.UNAUTHORIZED,
|
||||||
responseWrapper.errorMessage, null, responseWrapper.exception);
|
responseWrapper.errorMessage, null, responseWrapper.exception);
|
||||||
out.print(output);
|
out.print(output);
|
||||||
} catch (Exception e) {
|
}catch(IllegalArgumentException e) {
|
||||||
|
//CSMiddleware is throwing this error for invalid tokens.
|
||||||
|
//This problem appears to be fixed in other versions, but they are not approved yet.
|
||||||
|
try {
|
||||||
|
String output = Exceptions.buildLoggedErrorMessage(FaultType.UNAUTHORIZED,
|
||||||
|
"invalid authToken", null, responseWrapper.exception);
|
||||||
|
out.print(output);
|
||||||
|
}
|
||||||
|
catch (Exception x) {
|
||||||
|
LOG.error("Error while writing failed authentication HTTP response", x);
|
||||||
|
} finally {
|
||||||
|
if (out != null)
|
||||||
|
try {
|
||||||
|
out.close();
|
||||||
|
} catch (IOException ignore) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
LOG.error("Error while writing failed authentication HTTP response", e);
|
LOG.error("Error while writing failed authentication HTTP response", e);
|
||||||
} finally {
|
} finally {
|
||||||
if (out != null)
|
if (out != null)
|
||||||
|
Reference in New Issue
Block a user