2424import org .openqa .selenium .remote .http .HttpRequest ;
2525import org .openqa .selenium .remote .http .HttpResponse ;
2626
27- import java .util .Objects ;
27+ import java .util .TreeMap ;
2828import java .util .logging .Logger ;
2929
3030import static java .net .HttpURLConnection .HTTP_UNAUTHORIZED ;
3131import static org .openqa .selenium .grid .security .AddSecretFilter .HEADER_NAME ;
32+ import static org .openqa .selenium .json .Json .JSON_UTF_8 ;
3233
3334public class RequiresSecretFilter implements Filter {
3435
@@ -47,8 +48,14 @@ public HttpHandler apply(HttpHandler httpHandler) {
4748 if (!isSecretMatch (secret , req )) {
4849 return new HttpResponse ()
4950 .setStatus (HTTP_UNAUTHORIZED )
50- .addHeader ("Content-Type" , "text/plain; charset=UTF-8" )
51- .setContent (Contents .utf8String ("Unauthorized access attempted to " + req .getUri ()));
51+ .addHeader ("Content-Type" , JSON_UTF_8 )
52+ .setContent (Contents .asJson (new TreeMap <String , Object >() {{
53+ put ("value" , new TreeMap <String , Object >() {{
54+ put ("error" , "unknown error" );
55+ put ("message" , "Unauthorized access attempted to " + req );
56+ put ("stacktrace" , "" );
57+ }});
58+ }}));
5259 }
5360
5461 return httpHandler .execute (req );
@@ -59,7 +66,7 @@ private boolean isSecretMatch(Secret secret, HttpRequest request) {
5966 String header = request .getHeader (HEADER_NAME );
6067 if (header == null ) {
6168 if (secret != null ) {
62- LOG .warning ("Unexpected secret sent!" );
69+ LOG .warning ("Unexpectedly received registration secret to " + request );
6370 return false ;
6471 }
6572 return true ;
@@ -68,7 +75,7 @@ private boolean isSecretMatch(Secret secret, HttpRequest request) {
6875 Secret requestSecret = new Secret (header );
6976
7077 if (!secret .matches (requestSecret )) {
71- LOG .warning ("Secrets did not match!" );
78+ LOG .warning ("Unauthorized access attempted to " + request );
7279 return false ;
7380 }
7481
0 commit comments