Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Open Subsurface Data Universe Software
Platform
System
Search
Commits
e6b0576e
Commit
e6b0576e
authored
May 28, 2021
by
Rustam Lotsmanenko (EPAM)
Browse files
temp fix for policy integration
parent
cf571a7e
Pipeline
#43330
passed with stages
in 32 minutes
Changes
2
Pipelines
3
Hide whitespace changes
Inline
Side-by-side
provider/search-gcp/src/main/java/org/opengroup/osdu/search/provider/gcp/di/GCPJwtClientProvider.java
0 → 100644
View file @
e6b0576e
package
org.opengroup.osdu.search.provider.gcp.di
;
import
lombok.RequiredArgsConstructor
;
import
org.opengroup.osdu.core.common.util.IServiceAccountJwtClient
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.config.AbstractFactoryBean
;
import
org.springframework.stereotype.Component
;
//TODO temp fix for policy integration
@Component
@RequiredArgsConstructor
public
class
GCPJwtClientProvider
extends
AbstractFactoryBean
<
IServiceAccountJwtClient
>
{
@Value
(
"${GOOGLE_AUDIENCES}"
)
private
String
audience
;
@Override
public
Class
<?>
getObjectType
()
{
return
GcpServiceAccountJwtClient
.
class
;
}
@Override
protected
IServiceAccountJwtClient
createInstance
()
throws
Exception
{
GcpServiceAccountJwtClient
serviceAccountJwtClient
=
new
GcpServiceAccountJwtClient
(
audience
);
return
serviceAccountJwtClient
;
}
}
provider/search-gcp/src/main/java/org/opengroup/osdu/search/provider/gcp/di/GcpServiceAccountJwtClient.java
0 → 100644
View file @
e6b0576e
package
org.opengroup.osdu.search.provider.gcp.di
;
import
com.google.auth.oauth2.AccessToken
;
import
com.google.auth.oauth2.GoogleCredentials
;
import
com.google.auth.oauth2.IdTokenCredentials
;
import
com.google.auth.oauth2.IdTokenProvider
;
import
java.io.IOException
;
import
java.util.Objects
;
import
org.apache.http.HttpStatus
;
import
org.opengroup.osdu.core.common.model.http.AppException
;
import
org.opengroup.osdu.core.common.util.IServiceAccountJwtClient
;
//TODO temp fix for policy integration
public
class
GcpServiceAccountJwtClient
implements
IServiceAccountJwtClient
{
private
IdTokenProvider
idTokenProvider
;
private
String
targetAudience
;
public
GcpServiceAccountJwtClient
(
IdTokenProvider
idTokenProvider
,
String
targetAudience
)
{
this
.
idTokenProvider
=
idTokenProvider
;
this
.
targetAudience
=
targetAudience
;
}
public
GcpServiceAccountJwtClient
(
String
targetAudience
)
{
this
.
targetAudience
=
targetAudience
;
}
@Override
public
String
getIdToken
(
String
serviceAccount
)
{
try
{
if
(
Objects
.
isNull
(
this
.
idTokenProvider
))
{
GoogleCredentials
adcCreds
=
GoogleCredentials
.
getApplicationDefault
();
if
(
adcCreds
instanceof
IdTokenProvider
)
{
this
.
idTokenProvider
=
(
IdTokenProvider
)
adcCreds
;
}
else
{
throw
new
AppException
(
HttpStatus
.
SC_INTERNAL_SERVER_ERROR
,
"Misconfigured credentials"
,
"GcpServiceAccountJwtClient have misconfigured token provider"
);
}
}
IdTokenCredentials
tokenCredential
=
IdTokenCredentials
.
newBuilder
()
.
setIdTokenProvider
(
this
.
idTokenProvider
)
.
setTargetAudience
(
this
.
targetAudience
)
.
build
();
AccessToken
accessToken
=
tokenCredential
.
refreshAccessToken
();
return
accessToken
.
getTokenValue
();
}
catch
(
IOException
e
)
{
throw
new
AppException
(
HttpStatus
.
SC_INTERNAL_SERVER_ERROR
,
"Misconfigured credentials"
,
"GcpServiceAccountJwtClient have misconfigured token provider"
,
e
);
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment