@@ -13,7 +13,6 @@ import (
13
13
"github.com/smallstep/certificates/authority/admin"
14
14
"github.com/smallstep/certificates/errs"
15
15
"github.com/smallstep/certificates/logging"
16
- "github.com/smallstep/certificates/scep"
17
16
)
18
17
19
18
// WriteError writes to w a JSON representation of the given error.
@@ -25,22 +24,9 @@ func WriteError(w http.ResponseWriter, err error) {
25
24
case * admin.Error :
26
25
admin .WriteError (w , k )
27
26
return
28
- case * scep.Error :
29
- w .Header ().Set ("Content-Type" , "text/plain" )
30
- default :
31
- w .Header ().Set ("Content-Type" , "application/json" )
32
27
}
33
28
34
29
cause := errors .Cause (err )
35
- if sc , ok := err .(errs.StatusCoder ); ok {
36
- w .WriteHeader (sc .StatusCode ())
37
- } else {
38
- if sc , ok := cause .(errs.StatusCoder ); ok {
39
- w .WriteHeader (sc .StatusCode ())
40
- } else {
41
- w .WriteHeader (http .StatusInternalServerError )
42
- }
43
- }
44
30
45
31
// Write errors in the response writer
46
32
if rl , ok := w .(logging.ResponseLogger ); ok {
@@ -60,6 +46,16 @@ func WriteError(w http.ResponseWriter, err error) {
60
46
}
61
47
}
62
48
49
+ code := http .StatusInternalServerError
50
+ if sc , ok := err .(errs.StatusCoder ); ok {
51
+ code = sc .StatusCode ()
52
+ } else if sc , ok := cause .(errs.StatusCoder ); ok {
53
+ code = sc .StatusCode ()
54
+ }
55
+
56
+ w .Header ().Set ("Content-Type" , "application/json" )
57
+ w .WriteHeader (code )
58
+
63
59
if err := json .NewEncoder (w ).Encode (err ); err != nil {
64
60
log .Error (w , err )
65
61
}
0 commit comments