remove hardcoded references to localhost or any part of the platform api url from jsp and javascript libs.

This commit is contained in:
Keith Woodlock
2012-05-20 15:48:33 +01:00
parent 965429e30e
commit 52de332e5e
17 changed files with 90 additions and 188 deletions
@@ -2,8 +2,7 @@ package org.mifosng.configuration;
public interface ApplicationConfigurationService {
OAuthProviderDetails retrieveOAuthProviderDetails();
void update(OAuthProviderDetails newDetails);
void update(String platformApiUrl);
String retrievePlatformApiUrl();
}
@@ -6,46 +6,24 @@ import org.springframework.stereotype.Service;
* When application goes down or rebooted, configuration values return to defaults provided here.
*/
@Service
public class InMemoryApplicationConfigurationService implements
ApplicationConfigurationService {
private String oauthProviderUrl = "http://localhost:8080/mifosng-provider/";
private String requestTokenURL = "oauth/request_token";
private String userAuthorizationURL = "oauth/confirm_access";
private String accessTokenURL = "oauth/access_token";
private String individualLendingResourceConsumerkey = "mifosng-ui-consumer-key";
private String individualLendingConsumerSharedSecret = "testmifosng";
public class InMemoryApplicationConfigurationService implements ApplicationConfigurationService {
private String platformApiUrl = "http://localhost:8080/mifosng-provider/api/v1/";
public InMemoryApplicationConfigurationService() {
//
}
@Override
public OAuthProviderDetails retrieveOAuthProviderDetails() {
String requestTokenFullUrl = this.oauthProviderUrl
.concat(this.requestTokenURL);
String userAuthorizationFullURL = this.oauthProviderUrl
.concat(this.userAuthorizationURL);
String accessTokenFullURL = this.oauthProviderUrl
.concat(this.accessTokenURL);
return new OAuthProviderDetails(this.oauthProviderUrl, requestTokenFullUrl,
userAuthorizationFullURL, accessTokenFullURL,
this.individualLendingResourceConsumerkey,
this.individualLendingConsumerSharedSecret);
public void update(final String platformApiUrl) {
this.platformApiUrl = platformApiUrl;
if (!this.platformApiUrl.endsWith("/")) {
this.platformApiUrl = this.platformApiUrl.concat("/");
}
}
@Override
public void update(OAuthProviderDetails newDetails) {
this.oauthProviderUrl = newDetails.getProviderBaseUrl();
if (!this.oauthProviderUrl.endsWith("/")) {
this.oauthProviderUrl = this.oauthProviderUrl.concat("/");
}
this.individualLendingResourceConsumerkey = newDetails.getConsumerkey();
this.individualLendingConsumerSharedSecret = newDetails.getSharedSecret();
public String retrievePlatformApiUrl() {
return this.platformApiUrl;
}
}
@@ -1,56 +0,0 @@
package org.mifosng.configuration;
public class OAuthProviderDetails {
private final String requestTokenUrl;
private final String userAuthorizationUrl;
private final String accessTokenUrl;
private final String sharedSecret;
private final String consumerkey;
private final String providerBaseUrl;
public OAuthProviderDetails(String providerBaseUrl, String requestTokenUrl,
String userAuthorizationUrl, String accessTokenUrl,
String consumerkey, String sharedSecret) {
this.providerBaseUrl = providerBaseUrl;
this.requestTokenUrl = requestTokenUrl;
this.userAuthorizationUrl = userAuthorizationUrl;
this.accessTokenUrl = accessTokenUrl;
this.consumerkey = consumerkey;
this.sharedSecret = sharedSecret;
}
public OAuthProviderDetails(String oauthProviderUrl, String consumerkey,
String sharedSecret) {
this.providerBaseUrl = oauthProviderUrl;
this.consumerkey = consumerkey;
this.sharedSecret = sharedSecret;
this.accessTokenUrl = "";
this.userAuthorizationUrl = "";
this.requestTokenUrl = "";
}
public String getRequestTokenUrl() {
return requestTokenUrl;
}
public String getUserAuthorizationUrl() {
return userAuthorizationUrl;
}
public String getAccessTokenUrl() {
return accessTokenUrl;
}
public String getSharedSecret() {
return sharedSecret;
}
public String getConsumerkey() {
return consumerkey;
}
public String getProviderBaseUrl() {
return providerBaseUrl;
}
}
@@ -1,9 +1,6 @@
package org.mifosng.ui;
import org.mifosng.configuration.ApplicationConfigurationService;
import org.mifosng.configuration.OAuthProviderDetails;
import org.mifosng.ui.infrastructure.BasicAuthUserDetails;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
@@ -21,13 +18,6 @@ import org.springframework.web.servlet.ModelAndView;
@Controller
public class ApplicationPagesRoutesController {
private final ApplicationConfigurationService applicationConfigurationService;
@Autowired
public ApplicationPagesRoutesController(ApplicationConfigurationService applicationConfigurationService) {
this.applicationConfigurationService = applicationConfigurationService;
}
@ExceptionHandler(AccessDeniedException.class)
public String accessDeniedException() {
return "unAuthorizedAction";
@@ -106,14 +96,10 @@ public class ApplicationPagesRoutesController {
@RequestMapping(value = "/reporting/flexireport", method = RequestMethod.GET)
public String viewFlexibleReportingPage(final Model model, final Authentication authentication) {
OAuthProviderDetails oauthDetails = this.applicationConfigurationService.retrieveOAuthProviderDetails();
BasicAuthUserDetails userDetails = (BasicAuthUserDetails) authentication.getPrincipal();
model.addAttribute("basicAuthKey", userDetails.getBasicAuthenticationKey());
model.addAttribute("baseApiUrl", userDetails.getFullApiUrl());
model.addAttribute("baseUrl", oauthDetails.getProviderBaseUrl());
return "reports/flexireport";
}
}
@@ -5,7 +5,6 @@ import java.util.ArrayList;
import java.util.Collection;
import org.mifosng.configuration.ApplicationConfigurationService;
import org.mifosng.configuration.OAuthProviderDetails;
import org.mifosng.data.AuthenticatedUserData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
@@ -46,10 +45,9 @@ public class ApiDelegatingAuthenticationProvider extends AbstractUserDetailsAuth
String password = (String) authentication.getCredentials();
OAuthProviderDetails oauthDetails = this.applicationConfigurationService.retrieveOAuthProviderDetails();
String apiVersion = "api/v1/";
String platformApiUrl = this.applicationConfigurationService.retrievePlatformApiUrl();
String authUrlExtension = "authentication?username=" + username + "&password=" + password;
StringBuilder authenticationApiUrl = new StringBuilder(oauthDetails.getProviderBaseUrl()).append(apiVersion).append(authUrlExtension);
StringBuilder authenticationApiUrl = new StringBuilder(platformApiUrl).append(authUrlExtension);
URI restUri = URI.create(authenticationApiUrl.toString());
ResponseEntity<AuthenticatedUserData> s = this.restTemplate.postForEntity(restUri, authRequest(), AuthenticatedUserData.class);
@@ -63,7 +61,7 @@ public class ApiDelegatingAuthenticationProvider extends AbstractUserDetailsAuth
authorities.add(new SimpleGrantedAuthority(permission));
}
User user = new User(authenticatedUserData.getUsername(), "[not needed]", authorities);
userDetails = new BasicAuthUserDetails(user, authenticatedUserData.getBase64EncodedAuthenticationKey(), oauthDetails.getProviderBaseUrl(), apiVersion);
userDetails = new BasicAuthUserDetails(user, authenticatedUserData.getBase64EncodedAuthenticationKey(), platformApiUrl);
}
return userDetails;
@@ -10,14 +10,12 @@ public class BasicAuthUserDetails implements UserDetails {
private final User user;
private final String basicAuthenticationKey;
private final String apiBaseUrl;
private final String apiVersion;
private final String fullApiUrl;
public BasicAuthUserDetails(User user, String basicAuthenticationKey, String apiBaseUrl, String apiVersion) {
public BasicAuthUserDetails(User user, String basicAuthenticationKey, String fullApiUrl) {
this.user = user;
this.basicAuthenticationKey = basicAuthenticationKey;
this.apiBaseUrl = apiBaseUrl;
this.apiVersion = apiVersion;
this.fullApiUrl = fullApiUrl;
}
@Override
@@ -59,15 +57,7 @@ public class BasicAuthUserDetails implements UserDetails {
return basicAuthenticationKey;
}
public String getApiBaseUrl() {
return apiBaseUrl;
}
public String getApiVersion() {
return apiVersion;
}
public String getFullApiUrl() {
return this.apiBaseUrl + apiVersion;
return this.fullApiUrl;
}
}