This is an automated email from the ASF dual-hosted git repository.

ofuks pushed a commit to branch ofuks-keycloak-redirecturi
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git


The following commit(s) were added to refs/heads/ofuks-keycloak-redirecturi by 
this push:
     new 11b98ae  Added possibility to use multiple keycloak redirecturi
11b98ae is described below

commit 11b98ae69e25c3a74e4057dbe711503eb5b43c20
Author: ofuks <[email protected]>
AuthorDate: Tue Oct 1 10:57:21 2019 +0300

    Added possibility to use multiple keycloak redirecturi
---
 .../com/epam/dlab/backendapi/resources/KeycloakResource.java     | 9 +++++----
 .../com/epam/dlab/backendapi/service/KeycloakServiceImpl.java    | 5 ++++-
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
index 9d4d66c..e719215 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/resources/KeycloakResource.java
@@ -19,7 +19,7 @@ import static java.lang.String.format;
 
 @Path("/oauth")
 public class KeycloakResource {
-       private static final String LOGIN_URI_FORMAT = 
"%s/realms/%s/protocol/openid-connect/auth?client_id=%s" +
+       private static final String LOGIN_URI_FORMAT = 
"%s/realms/%s/protocol/openid-connect/auth?client_id=%s&redirect_uri=%s" +
                        "&response_type=code";
        private static final String KEYCLOAK_LOGOUT_URI_FORMAT = 
"%s/realms/%s/protocol/openid-connect/logout" +
                        "?redirect_uri=";
@@ -43,7 +43,8 @@ public class KeycloakResource {
                                format(LOGIN_URI_FORMAT,
                                                
keycloakConfiguration.getAuthServerUrl(),
                                                
keycloakConfiguration.getRealm(),
-                                               
keycloakConfiguration.getResource());
+                                               
keycloakConfiguration.getResource(),
+                                               redirectUri);
                logoutUri =
                                format(KEYCLOAK_LOGOUT_URI_FORMAT,
                                                
keycloakConfiguration.getAuthServerUrl(),
@@ -52,8 +53,8 @@ public class KeycloakResource {
 
        @GET
        @Produces(MediaType.TEXT_PLAIN)
-       public Response getLoginUri() {
-               return Response.ok(loginUri)
+       public Response getLoginUri() throws URISyntaxException {
+               return Response.ok(new URI(loginUri).toString())
                                .build();
        }
 
diff --git 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/KeycloakServiceImpl.java
 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/KeycloakServiceImpl.java
index aaf6c02..dffd112 100644
--- 
a/services/self-service/src/main/java/com/epam/dlab/backendapi/service/KeycloakServiceImpl.java
+++ 
b/services/self-service/src/main/java/com/epam/dlab/backendapi/service/KeycloakServiceImpl.java
@@ -20,11 +20,13 @@ public class KeycloakServiceImpl implements KeycloakService 
{
        private static final String URI = 
"/realms/%s/protocol/openid-connect/token";
        private final Client httpClient;
        private final KeycloakConfiguration conf;
+       private final String redirectUri;
 
        @Inject
        public KeycloakServiceImpl(Client httpClient, 
SelfServiceApplicationConfiguration conf) {
                this.httpClient = httpClient;
                this.conf = conf.getKeycloakConfiguration();
+               this.redirectUri = 
conf.getKeycloakConfiguration().getRedirectUri();
        }
 
        @Override
@@ -55,7 +57,8 @@ public class KeycloakServiceImpl implements KeycloakService {
        private Form accessTokenRequestForm(String code) {
                return new Form()
                                .param("grant_type", "authorization_code")
-                               .param("code", code);
+                               .param("code", code)
+                               .param("redirect_uri", redirectUri);
        }
 
        private Form refreshTokenRequestForm(String refreshToken) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to