You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ju...@apache.org on 2019/10/19 18:08:51 UTC
[fineract-cn-permitted-feign-client] 10/36: Improved logging and
error handling. Fixed path to identity.
This is an automated email from the ASF dual-hosted git repository.
juhan pushed a commit to branch 0.1.x
in repository https://gitbox.apache.org/repos/asf/fineract-cn-permitted-feign-client.git
commit 1f9140be84723b4a208d27045493784305cb8bca
Author: myrle-krantz <mk...@mifos.org>
AuthorDate: Wed Jun 7 12:08:12 2017 +0200
Improved logging and error handling. Fixed path to identity.
---
.../config/PermittedFeignClientConfiguration.java | 2 +-
.../security/ApplicationTokenedTargetInterceptor.java | 5 ++++-
.../service/ApplicationAccessTokenService.java | 16 ++++++++++++++--
3 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/library/src/main/java/io/mifos/permittedfeignclient/config/PermittedFeignClientConfiguration.java b/library/src/main/java/io/mifos/permittedfeignclient/config/PermittedFeignClientConfiguration.java
index 41ff160..c004aae 100644
--- a/library/src/main/java/io/mifos/permittedfeignclient/config/PermittedFeignClientConfiguration.java
+++ b/library/src/main/java/io/mifos/permittedfeignclient/config/PermittedFeignClientConfiguration.java
@@ -57,6 +57,6 @@ public class PermittedFeignClientConfiguration {
.requestInterceptor(new TokenedTargetInterceptor())
.decoder(new GsonDecoder())
.encoder(new GsonEncoder())
- .target(IdentityManager.class, "http://identity-v1");
+ .target(IdentityManager.class, "http://identity-v1/identity/v1");
}
}
diff --git a/library/src/main/java/io/mifos/permittedfeignclient/security/ApplicationTokenedTargetInterceptor.java b/library/src/main/java/io/mifos/permittedfeignclient/security/ApplicationTokenedTargetInterceptor.java
index 60a58ad..ecce505 100644
--- a/library/src/main/java/io/mifos/permittedfeignclient/security/ApplicationTokenedTargetInterceptor.java
+++ b/library/src/main/java/io/mifos/permittedfeignclient/security/ApplicationTokenedTargetInterceptor.java
@@ -48,8 +48,11 @@ public class ApplicationTokenedTargetInterceptor implements RequestInterceptor {
@Override
public void apply(final RequestTemplate template) {
UserContextHolder.getUserContext().ifPresent(userContext -> {
+ final String accessToken = applicationAccessTokenService.getAccessToken(userContext.getUser(),
+ TenantContextHolder.checkedGetIdentifier(), endpointSetIdentifier);
+
template.header(ApiConstants.USER_HEADER, userContext.getUser());
- template.header(ApiConstants.AUTHORIZATION_HEADER, applicationAccessTokenService.getAccessToken(userContext.getUser(), TenantContextHolder.checkedGetIdentifier(), endpointSetIdentifier));
+ template.header(ApiConstants.AUTHORIZATION_HEADER, accessToken);
});
}
}
\ No newline at end of file
diff --git a/library/src/main/java/io/mifos/permittedfeignclient/service/ApplicationAccessTokenService.java b/library/src/main/java/io/mifos/permittedfeignclient/service/ApplicationAccessTokenService.java
index ca6e274..1cb4554 100644
--- a/library/src/main/java/io/mifos/permittedfeignclient/service/ApplicationAccessTokenService.java
+++ b/library/src/main/java/io/mifos/permittedfeignclient/service/ApplicationAccessTokenService.java
@@ -19,6 +19,8 @@ import io.mifos.anubis.config.TenantSignatureRepository;
import io.mifos.anubis.security.AmitAuthenticationException;
import io.mifos.anubis.token.TenantRefreshTokenSerializer;
import io.mifos.anubis.token.TokenSerializationResult;
+import io.mifos.core.api.context.AutoGuest;
+import io.mifos.core.api.util.NotFoundException;
import io.mifos.core.lang.ApplicationName;
import io.mifos.core.lang.AutoTenantContext;
import io.mifos.core.lang.security.RsaKeyPairFactory;
@@ -97,8 +99,14 @@ public class ApplicationAccessTokenService {
private Authentication createAccessToken(final TokenCacheKey tokenCacheKey) {
final String refreshToken = refreshTokenCache.get(tokenCacheKey).getToken();
try (final AutoTenantContext ignored = new AutoTenantContext(tokenCacheKey.getTenant())) {
- logger.debug("Getting access token for {}", tokenCacheKey);
- return identityManager.refresh(refreshToken);
+ try (final AutoGuest ignored2 = new AutoGuest()) {
+ logger.debug("Getting access token for {}", tokenCacheKey);
+ return identityManager.refresh(refreshToken);
+ }
+ catch (final Exception e) {
+ logger.error("Couldn't get access token from identity for {}.", tokenCacheKey, e);
+ throw new NotFoundException("Couldn't get access token");
+ }
}
}
@@ -122,5 +130,9 @@ public class ApplicationAccessTokenService {
return tenantRefreshTokenSerializer.build(specification);
}
+ catch (final Exception e) {
+ logger.error("Couldn't create refresh token for {}.", tokenCacheKey, e);
+ throw new NotFoundException("Couldn't create refresh token.");
+ }
}
}