Browse Source

[Authentication] Return details when user token authentication fails

develop
Robin Thoni 9 years ago
parent
commit
dfc651b78b
1 changed files with 7 additions and 10 deletions
  1. 7
    10
      Authentication/Business/JWT/TokenValidationHandler.cs

+ 7
- 10
Authentication/Business/JWT/TokenValidationHandler.cs View File

52
         /// <returns>The HTTP response</returns>
52
         /// <returns>The HTTP response</returns>
53
         protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
53
         protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
54
         {
54
         {
55
-            HttpStatusCode statusCode;
55
+            OpResult<bool> error = null;
56
             string token;
56
             string token;
57
 
57
 
58
             if (!TryRetrieveToken(request, out token))
58
             if (!TryRetrieveToken(request, out token))
70
 
70
 
71
                 if (name == null || salt == null)
71
                 if (name == null || salt == null)
72
                 {
72
                 {
73
-                    OpResult<bool>.Error(ResultStatus.LoginError, string.Format("Incomplete token; username is present: {0}; salt is present {1}", name != null, salt != null)).Log();
74
-                    statusCode = HttpStatusCode.Unauthorized;
73
+                    error = OpResult<bool>.Error(ResultStatus.LoginError, string.Format("Incomplete token; username is present: {0}; salt is present {1}", name != null, salt != null), "Incomplete token").Log();
75
                 }
74
                 }
76
                 else
75
                 else
77
                 {
76
                 {
78
                     var user = GetUserDbo(name.Value, salt.Value);
77
                     var user = GetUserDbo(name.Value, salt.Value);
79
                     if (user == null)
78
                     if (user == null)
80
                     {
79
                     {
81
-                        OpResult<bool>.Error(ResultStatus.LoginError,
82
-                            string.Format("Username {0} not found", name.Value)).Log();
83
-                        statusCode = HttpStatusCode.Unauthorized;
80
+                        error = OpResult<bool>.Error(ResultStatus.LoginError,
81
+                            string.Format("Username {0} not found", name.Value), "").Log();
84
                     }
82
                     }
85
                     else
83
                     else
86
                     {
84
                     {
91
             }
89
             }
92
             catch (Exception e)
90
             catch (Exception e)
93
             {
91
             {
94
-                OpResult<bool>.Error(ResultStatus.LoginError, e).Log();
95
-                statusCode = HttpStatusCode.Unauthorized;
92
+                error = OpResult<bool>.Error(ResultStatus.LoginError, e, "Failed to validate token").Log();
96
             }
93
             }
97
-            return Task<HttpResponseMessage>.Factory.StartNew(() =>
98
-               new HttpResponseMessage(statusCode), cancellationToken);
94
+            var resp = request.CreateErrorResponse(HttpStatusCode.Unauthorized, error.PublicDetails);
95
+            return Task<HttpResponseMessage>.Factory.StartNew(() => resp, cancellationToken);
99
         }
96
         }
100
     }
97
     }
101
 }
98
 }

Loading…
Cancel
Save