Skip to content

Commit a3e5227

Browse files
authored
feat(jans-auth-server): added ability to return error out of introspection and update_token custom script #3255 (#3356)
1 parent 528bf05 commit a3e5227

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

jans-auth-server/server/src/main/java/io/jans/as/server/service/external/ExternalIntrospectionService.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,14 @@
1313
import io.jans.model.custom.script.conf.CustomScriptConfiguration;
1414
import io.jans.model.custom.script.type.introspection.IntrospectionType;
1515
import io.jans.service.custom.script.ExternalScriptService;
16-
import org.jetbrains.annotations.NotNull;
17-
import org.json.JSONObject;
18-
1916
import jakarta.ejb.DependsOn;
2017
import jakarta.enterprise.context.ApplicationScoped;
2118
import jakarta.inject.Inject;
2219
import jakarta.inject.Named;
20+
import jakarta.ws.rs.WebApplicationException;
21+
import org.jetbrains.annotations.NotNull;
22+
import org.json.JSONObject;
23+
2324
import java.util.List;
2425

2526
/**
@@ -93,7 +94,10 @@ private boolean executeExternalModifyResponse(CustomScriptConfiguration scriptCo
9394
final boolean result = script.modifyResponse(responseAsJsonObject, context);
9495
log.trace("Finished external 'executeExternalModifyResponse' method, script name: {}, responseAsJsonObject: {} , context: {}, result: {}",
9596
scriptConf.getName(), responseAsJsonObject, context, result);
97+
context.throwWebApplicationExceptionIfSet();
9698
return result;
99+
} catch (WebApplicationException e) {
100+
throw e;
97101
} catch (Exception ex) {
98102
log.error(ex.getMessage(), ex);
99103
saveScriptError(scriptConf.getCustomScript(), ex);

jans-auth-server/server/src/main/java/io/jans/as/server/service/external/ExternalUpdateTokenService.java

+20-1
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,10 @@
1515
import io.jans.model.custom.script.conf.CustomScriptConfiguration;
1616
import io.jans.model.custom.script.type.token.UpdateTokenType;
1717
import io.jans.service.custom.script.ExternalScriptService;
18+
import jakarta.enterprise.context.ApplicationScoped;
19+
import jakarta.ws.rs.WebApplicationException;
1820
import org.jetbrains.annotations.NotNull;
1921

20-
import jakarta.enterprise.context.ApplicationScoped;
2122
import java.util.List;
2223
import java.util.function.Function;
2324

@@ -42,7 +43,10 @@ public boolean modifyIdTokenMethod(CustomScriptConfiguration script, JsonWebResp
4243
final boolean result = updateTokenType.modifyIdToken(jsonWebResponse, context);
4344
log.trace("Finished 'updateToken' method, script name: {}, jsonWebResponse: {}, context: {}, result: {}", script.getName(), jsonWebResponse, context, result);
4445

46+
context.throwWebApplicationExceptionIfSet();
4547
return result;
48+
} catch (WebApplicationException e) {
49+
throw e;
4650
} catch (Exception ex) {
4751
log.error(ex.getMessage(), ex);
4852
saveScriptError(script.getCustomScript(), ex);
@@ -84,7 +88,10 @@ public int getRefreshTokenLifetimeInSeconds(CustomScriptConfiguration script, Ex
8488
final int result = updateTokenType.getRefreshTokenLifetimeInSeconds(context);
8589
log.trace("Finished 'getRefreshTokenLifetimeInSeconds' method, script name: {}, context: {}, result: {}", script.getName(), context, result);
8690

91+
context.throwWebApplicationExceptionIfSet();
8792
return result;
93+
} catch (WebApplicationException e) {
94+
throw e;
8895
} catch (Exception ex) {
8996
log.error(ex.getMessage(), ex);
9097
saveScriptError(script.getCustomScript(), ex);
@@ -133,7 +140,10 @@ public boolean modifyRefreshToken(CustomScriptConfiguration script, RefreshToken
133140
final boolean result = updateTokenType.modifyRefreshToken(refreshToken, context);
134141
log.trace("Finished 'modifyRefreshToken' method, script name: {}, context: {}, result: {}", script.getName(), context, result);
135142

143+
context.throwWebApplicationExceptionIfSet();
136144
return result;
145+
} catch (WebApplicationException e) {
146+
throw e;
137147
} catch (Exception ex) {
138148
log.error(ex.getMessage(), ex);
139149
saveScriptError(script.getCustomScript(), ex);
@@ -167,7 +177,10 @@ public boolean modifyAccessToken(CustomScriptConfiguration script, AccessToken a
167177
final boolean result = updateTokenType.modifyAccessToken(accessToken, context);
168178
log.trace("Finished 'modifyAccessToken' method, script name: {}, context: {}, result: {}", script.getName(), context, result);
169179

180+
context.throwWebApplicationExceptionIfSet();
170181
return result;
182+
} catch (WebApplicationException e) {
183+
throw e;
171184
} catch (Exception ex) {
172185
log.error(ex.getMessage(), ex);
173186
saveScriptError(script.getCustomScript(), ex);
@@ -201,7 +214,10 @@ public int getAccessTokenLifetimeInSeconds(CustomScriptConfiguration script, Ext
201214
final int result = updateTokenType.getAccessTokenLifetimeInSeconds(context);
202215
log.trace("Finished 'getAccessTokenLifetimeInSeconds' method, script name: {}, context: {}, result: {}", script.getName(), context, result);
203216

217+
context.throwWebApplicationExceptionIfSet();
204218
return result;
219+
} catch (WebApplicationException e) {
220+
throw e;
205221
} catch (Exception ex) {
206222
log.error(ex.getMessage(), ex);
207223
saveScriptError(script.getCustomScript(), ex);
@@ -235,7 +251,10 @@ public int getIdTokenLifetimeInSeconds(CustomScriptConfiguration script, Externa
235251
final int result = updateTokenType.getIdTokenLifetimeInSeconds(context);
236252
log.trace("Finished 'getIdTokenLifetimeInSeconds' method, script name: {}, context: {}, result: {}", script.getName(), context, result);
237253

254+
context.throwWebApplicationExceptionIfSet();
238255
return result;
256+
} catch (WebApplicationException e) {
257+
throw e;
239258
} catch (Exception ex) {
240259
log.error(ex.getMessage(), ex);
241260
saveScriptError(script.getCustomScript(), ex);

0 commit comments

Comments
 (0)