@@ -342,6 +342,26 @@ public void service(HttpServletRequest request, HttpServletResponse response) th
342342 Request <HttpServletRequest , ServletInputStream > _request = new RequestBuilder (request , isSSL ());
343343 Response <HttpServletResponse , ServletOutputStream > _response = new ResponseBuilder (response );
344344
345+ // Enforce server name restriction if configured
346+ String configuredServerName = settings .get ("server.name" );
347+ if (configuredServerName != null && !configuredServerName .trim ().isEmpty ()) {
348+ String hostHeader = request .getHeader ("Host" );
349+ boolean hostAllowed = false ;
350+ if (hostHeader != null ) {
351+ for (String allowed : configuredServerName .split ("," )) {
352+ if (hostHeader .equalsIgnoreCase (allowed .trim ())) {
353+ hostAllowed = true ;
354+ break ;
355+ }
356+ }
357+ }
358+ if (!hostAllowed ) {
359+ logger .warning ("Rejected request: Host header '" + hostHeader + "' does not match any configured server.name '" + configuredServerName .trim () + "'" );
360+ sendErrorResponse (request , response , 400 , "Bad Request: Invalid server name." );
361+ return ;
362+ }
363+ }
364+
345365 // Authenticate request
346366 if (!authenticateRequest (_request , context )) {
347367 sendErrorResponse (request , response , 401 , "Invalid or expired token." );
@@ -424,26 +444,6 @@ public void service(HttpServletRequest request, HttpServletResponse response) th
424444 return ;
425445 }
426446
427- // Enforce server name restriction if configured
428- String configuredServerName = settings .get ("server.name" );
429- if (configuredServerName != null && !configuredServerName .trim ().isEmpty ()) {
430- String hostHeader = request .getHeader ("Host" );
431- boolean hostAllowed = false ;
432- if (hostHeader != null ) {
433- for (String allowed : configuredServerName .split ("," )) {
434- if (hostHeader .equalsIgnoreCase (allowed .trim ())) {
435- hostAllowed = true ;
436- break ;
437- }
438- }
439- }
440- if (!hostAllowed ) {
441- logger .warning ("Rejected request: Host header '" + hostHeader + "' does not match any configured server.name '" + configuredServerName .trim () + "'" );
442- sendErrorResponse (request , response , 400 , "Bad Request: Invalid server name." );
443- return ;
444- }
445- }
446-
447447 if (isSSE (request )) {
448448 handleSSE (context , _request , _response );
449449 return ;
0 commit comments