Skip to content

Commit ab5f237

Browse files
committed
Integration working
1 parent 65f8291 commit ab5f237

File tree

11 files changed

+128
-12
lines changed

11 files changed

+128
-12
lines changed

config-layers/common/in/erail/route/LoadUserFromSessionRouteBuillder.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ $class=in.erail.route.LoadUserFromSessionRouteBuillder
44
vertx=/io/vertx/core/Vertx
55
log=true
66
enable^=/in/erail/route/SessionRouteBuillder.enable
7+
#authProvider=

config-layers/common/in/erail/route/OIDCCallbackRouteBuilder.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
$class=in.erail.route.OIDCCallbackRouteBuilder
33

44
queryParamAuthCode=code
5-
authProvider=/io/vertx/ext/auth/oauth2/OAuth2Auth
5+
authProvider=
66
vertx=/io/vertx/core/Vertx
77
log=true
88
callbackURI=/callback

config-layers/common/in/erail/route/SessionRouteBuillder.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ $class=in.erail.route.SessionRouteBuillder
44
vertx=/io/vertx/core/Vertx
55
log=true
66
enable=true
7-
sessionStore=/io/vertx/ext/web/sstore/SessionStore
7+
sessionStore=/io/vertx/ext/web/sstore/SessionStore
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#/io/vertx/ext/auth/oauth2/OAuth2Auth
22
$class=io.vertx.reactivex.ext.auth.oauth2.OAuth2Auth
33
$instanceFactory=/in/erail/factory/MethodInstanceFactory
4-
$factory.class=io.vertx.reactivex.ext.auth.oauth2.providers.KeycloakAuth
4+
$factory.instance=/io/vertx/ext/auth/oauth2/OpenIDConnectAuthFactory
55
$factory.method.name=create
6-
$factory.param.values=/io/vertx/core/Vertx,AUTH_CODE,keyCloakConfig.json
7-
$factory.param.type=io.vertx.reactivex.core.Vertx,io.vertx.ext.auth.oauth2.OAuth2FlowType,io.vertx.core.json.JsonObject
8-
$factory.enable=false
6+
$factory.enable=true
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#/io/vertx/ext/auth/oauth2/OAuth2ClientOptions
2+
$class=io.vertx.ext.auth.oauth2.OAuth2ClientOptions
3+
site=
4+
clientID=
5+
clientSecret=
6+
flow=
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#/io/vertx/ext/auth/oauth2/OpenIDConnectAuthFactory
2+
$class=io.vertx.reactivex.ext.auth.oauth2.providers.OpenIDConnectAuthFactory
3+
vertx=/io/vertx/core/Vertx
4+
log=true
5+
oAuth2ClientOptions=/io/vertx/ext/auth/oauth2/OAuth2ClientOptions
6+
openIDConnectAuthClass=

config-layers/common/io/vertx/ext/auth/oauth2/keyCloakConfig.json

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/main/java/in/erail/route/LoadUserFromSessionRouteBuillder.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package in.erail.route;
22

33
import in.erail.common.FrameworkConstants;
4+
import io.vertx.reactivex.ext.auth.AuthProvider;
45
import io.vertx.reactivex.ext.auth.User;
56
import io.vertx.reactivex.ext.web.Router;
67
import io.vertx.reactivex.ext.web.RoutingContext;
@@ -12,6 +13,8 @@
1213
*/
1314
public class LoadUserFromSessionRouteBuillder extends AbstractRouterBuilderImpl {
1415

16+
private AuthProvider mAuthProvider;
17+
1518
@Override
1619
public Router getRouter(Router pRouter) {
1720
pRouter.route().handler(this::handle);
@@ -23,15 +26,23 @@ public void handle(RoutingContext pRoutingContext) {
2326

2427
if (session != null) {
2528
io.vertx.ext.auth.User user = session.get(FrameworkConstants.Session.PRINCIPAL);
26-
2729
if (user == null) {
2830
getLog().debug("User not found");
2931
} else {
32+
user.setAuthProvider(getAuthProvider().getDelegate());
3033
pRoutingContext.setUser(new User(user));
3134
}
3235
}
3336

3437
pRoutingContext.next();
3538
}
3639

40+
public AuthProvider getAuthProvider() {
41+
return mAuthProvider;
42+
}
43+
44+
public void setAuthProvider(AuthProvider pAuthProvider) {
45+
this.mAuthProvider = pAuthProvider;
46+
}
47+
3748
}

src/main/java/in/erail/route/OIDCCallbackRouteBuilder.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,34 @@ public class OIDCCallbackRouteBuilder extends AbstractRouterBuilderImpl {
2121
private String mFailPath;
2222

2323
public void handle(RoutingContext pRoutingCoutext) {
24+
25+
if (getAuthProvider() == null) {
26+
getLog().warn("Auth provider not set");
27+
return;
28+
}
29+
2430
JsonObject tokenConfig = getTokenConfig(pRoutingCoutext);
2531

2632
getAuthProvider()
2733
.rxAuthenticate(tokenConfig)
2834
.doOnSuccess((u) -> {
29-
Session session = pRoutingCoutext.session().regenerateId();
35+
Session session = pRoutingCoutext.session();
36+
37+
if (session == null) {
38+
39+
getLog().error(() -> "Session not found");
40+
41+
pRoutingCoutext
42+
.response()
43+
.putHeader(HttpHeaders.LOCATION, getFailURL(pRoutingCoutext))
44+
.setStatusCode(302)
45+
.end();
46+
return;
47+
}
48+
49+
session = session.regenerateId();
50+
51+
//Session session = pRoutingCoutext.session().regenerateId();
3052
session.put(FrameworkConstants.Session.PRINCIPAL, u.getDelegate());
3153
getLog().debug(() -> "Success URL:" + getSuccessURL(pRoutingCoutext));
3254

@@ -46,7 +68,7 @@ public void handle(RoutingContext pRoutingCoutext) {
4668
.setStatusCode(302)
4769
.end();
4870
})
49-
.blockingGet();
71+
.subscribe();
5072
}
5173

5274
private String baseURL(RoutingContext pRoutingContext) {
@@ -98,9 +120,14 @@ private JsonObject getTokenConfig(RoutingContext pRoutingContext) {
98120

99121
String authCode = pRoutingContext.request().params().get(getQueryParamAuthCode());
100122

101-
return new JsonObject()
123+
JsonObject config = new JsonObject()
102124
.put("code", authCode)
103125
.put("redirect_uri", baseURL(pRoutingContext) + getCallbackURI());
126+
127+
getLog().debug(() -> "Auth Config:" + config);
128+
129+
return config;
130+
104131
}
105132

106133
public String getQueryParamAuthCode() {

src/main/java/in/erail/route/SessionRouteBuillder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public Router getRouter(Router pRouter) {
3131
route.handler(CookieHandler.create());
3232
if (isEnableSession()) {
3333
route.handler(SessionHandler.create(getSessionStore()));
34+
getLog().info("Session Store Enabled");
3435
}
3536
return pRouter;
3637
}

0 commit comments

Comments
 (0)