ef-keycloak-connect 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ef-keycloak-connect",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "description": "Node JS keycloak adapter for authentication and authorization.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -8,23 +8,93 @@ class ErrorService {
8
8
 
9
9
  async handleError( err ) {
10
10
 
11
- if ( err.code == "ETIMEDOUT" ) {
11
+ console.log( err );
12
12
 
13
- return {
14
- "Keycloak login status": 408,
15
- "keycloak login message": `Keycloak server unaccessable against URL: ${keycloakConfig[ "auth-server-url" ]}`,
16
- };
13
+ if ( err.code ) {
14
+
15
+ switch ( err.code ) {
16
+
17
+ case 'ETIMEDOUT':
18
+ return {
19
+ status: 408,
20
+ reason: `Keycloak server unaccessable against Keycloak URL, This might be due to Network Issue or Server Unavailability`
21
+ };
22
+ case 'ENOTFOUND':
23
+ return {
24
+ status: 404,
25
+ reason: `Hostname Not Found, Keycloak server unaccessable against Keycloak URL. Unable to resolve Hostname, This maybe due to wrong Host URL or DNS server issue`,
26
+ };
27
+ default:
28
+ return {
29
+ status: err.response.status,
30
+ reason: err.response.data,
31
+ };
32
+ }
17
33
 
18
34
  } else {
19
35
 
20
36
  if ( err.response ) {
21
- return {
22
- status: err.response.status,
23
- reason: err.response.data,
24
- };
37
+
38
+ if ( err.response.data ) {
39
+
40
+ let errorData = err.response.data;
41
+
42
+ if ( errorData.error ) {
43
+
44
+ let error = errorData.error;
45
+
46
+ switch ( error ) {
47
+
48
+ case 'invalid_client':
49
+
50
+ return {
51
+ status: err.response.status,
52
+ reason: 'CLIENT_ID value is not valid in Keycloak Config, please provide a valid CLIENT_ID',
53
+ };
54
+ case 'unauthorized_client':
55
+
56
+ return {
57
+ status: err.response.status,
58
+ reason: 'CLIENT_SECRET (credentials.secret in Keycloak Config) value is not valid in Keycloak Config, please provide a valid CLIENT_SECRET',
59
+ };
60
+ case 'Realm does not exist':
61
+
62
+ return {
63
+ status: err.response.status,
64
+ reason: 'Realm is not valid in Keycloak Config, please provide a valid Keycloak Realm',
65
+ };
66
+ case 'invalid_grant':
67
+
68
+ return {
69
+ status: err.response.status,
70
+ reason: 'Provided User Credentials are not valid, please provide a valid User Credentials',
71
+ };
72
+ default:
73
+ return {
74
+ status: err.response.status,
75
+ reason: err.response.data,
76
+ };
77
+
78
+ }
79
+
80
+ } else {
81
+
82
+ return {
83
+ status: err.response.status,
84
+ reason: err.response.data,
85
+ };
86
+
87
+ }
88
+
89
+ }
90
+
91
+
25
92
  }
26
93
 
27
- return err;
94
+ return {
95
+ status: 'ReferenceError',
96
+ reason: "Some variable or function either hasn't been declared or is out of scope"
97
+ };
28
98
  }
29
99
  }
30
100
  }
@@ -14,7 +14,7 @@ class FinesseService {
14
14
 
15
15
  return new Promise( async ( resolve, reject ) => {
16
16
 
17
- var URL = finesseUrl + '/finesse/api/User/' + 'shabbersup@ucce.ipcc';
17
+ var URL = finesseUrl + '/finesse/api/User/' + username;
18
18
  let userObject = {};
19
19
 
20
20
  let encodedCredentials = await this.maskCredentials( username, password );