55
55
import com .okta .oidc .storage .SharedPreferenceStorage ;
56
56
import com .okta .oidc .util .AuthorizationException ;
57
57
58
+ import java .io .PrintWriter ;
59
+ import java .io .StringWriter ;
60
+
58
61
public class OktaSdkBridgeModule extends ReactContextBaseJavaModule implements ActivityEventListener {
59
62
60
63
private static final String SESSION_CLIENT_SHARED_PREFS = "OKTA_SDK_BRIDGE_MODULE_SESSION_CLIENT" ;
@@ -254,8 +257,9 @@ public void onSuccess(@NonNull Result result) {
254
257
WritableMap params = Arguments .createMap ();
255
258
params .putString (OktaSdkConstant .ERROR_CODE_KEY , OktaSdkError .SIGN_IN_FAILED .getErrorCode ());
256
259
params .putString (OktaSdkConstant .ERROR_MSG_KEY , OktaSdkError .SIGN_IN_FAILED .getErrorMessage ());
260
+ params .putString (OktaSdkConstant .ERROR_STACK_TRACE_KEY , getStackTraceString (e ));
257
261
sendEvent (reactContext , OktaSdkConstant .ON_ERROR , params );
258
- promise .reject (OktaSdkError .SIGN_IN_FAILED .getErrorCode (), OktaSdkError .SIGN_IN_FAILED .getErrorMessage ());
262
+ promise .reject (OktaSdkError .SIGN_IN_FAILED .getErrorCode (), OktaSdkError .SIGN_IN_FAILED .getErrorMessage (), e );
259
263
}
260
264
} else {
261
265
sharedPreferencesEditor .clear ().apply ();
@@ -273,8 +277,9 @@ public void onError(String error, AuthorizationException exception) {
273
277
WritableMap params = Arguments .createMap ();
274
278
params .putString (OktaSdkConstant .ERROR_CODE_KEY , OktaSdkError .OKTA_OIDC_ERROR .getErrorCode ());
275
279
params .putString (OktaSdkConstant .ERROR_MSG_KEY , error );
280
+ params .putString (OktaSdkConstant .ERROR_STACK_TRACE_KEY , getStackTraceString (exception ));
276
281
sendEvent (reactContext , OktaSdkConstant .ON_ERROR , params );
277
- promise .reject (OktaSdkError .OKTA_OIDC_ERROR .getErrorCode (), OktaSdkError .OKTA_OIDC_ERROR .getErrorMessage ());
282
+ promise .reject (OktaSdkError .OKTA_OIDC_ERROR .getErrorCode (), OktaSdkError .OKTA_OIDC_ERROR .getErrorMessage (), exception );
278
283
}
279
284
});
280
285
}
@@ -539,6 +544,7 @@ public void onSuccess(@NonNull AuthorizationStatus status) {
539
544
WritableMap params = Arguments .createMap ();
540
545
params .putString (OktaSdkConstant .ERROR_CODE_KEY , OktaSdkError .SIGN_IN_FAILED .getErrorCode ());
541
546
params .putString (OktaSdkConstant .ERROR_MSG_KEY , OktaSdkError .SIGN_IN_FAILED .getErrorMessage ());
547
+ params .putString (OktaSdkConstant .ERROR_STACK_TRACE_KEY , getStackTraceString (e ));
542
548
if (promise != null ) {
543
549
promise .reject (e );
544
550
}
@@ -576,6 +582,7 @@ public void onError(@NonNull String msg, AuthorizationException error) {
576
582
WritableMap params = Arguments .createMap ();
577
583
params .putString (OktaSdkConstant .ERROR_CODE_KEY , OktaSdkError .OKTA_OIDC_ERROR .getErrorCode ());
578
584
params .putString (OktaSdkConstant .ERROR_MSG_KEY , msg );
585
+ params .putString (OktaSdkConstant .ERROR_STACK_TRACE_KEY , getStackTraceString (error ));
579
586
final Promise promise = queuedPromise ;
580
587
if (promise != null ) {
581
588
promise .reject (OktaSdkError .SIGN_IN_FAILED .getErrorCode (), params .copy ());
@@ -728,6 +735,14 @@ private int getRecalculatedRequestCodeForActivityResult(
728
735
return initialRequestCode ;
729
736
}
730
737
738
+ private String getStackTraceString (Exception e ) {
739
+ StringWriter sw = new StringWriter ();
740
+ PrintWriter pw = new PrintWriter (sw );
741
+ e .printStackTrace (pw );
742
+ pw .flush ();
743
+ return sw .toString ();
744
+ }
745
+
731
746
private enum LastRequestType {
732
747
SIGN_IN ,
733
748
SIGN_OUT
0 commit comments