|  | @@ -199,6 +199,13 @@ class BaseStub
 | 
	
		
			
				|  |  |       */
 | 
	
		
			
				|  |  |      private function _get_jwt_aud_uri($method)
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  | +        // TODO(jtattermusch): This is not the correct implementation
 | 
	
		
			
				|  |  | +        // of extracting JWT "aud" claim. We should rely on
 | 
	
		
			
				|  |  | +        // grpc_metadata_credentials_plugin which
 | 
	
		
			
				|  |  | +        // also provides the correct value of "aud" claim
 | 
	
		
			
				|  |  | +        // in the grpc_auth_metadata_context.service_url field.
 | 
	
		
			
				|  |  | +        // Trying to do the construction of "aud" field ourselves
 | 
	
		
			
				|  |  | +        // is bad.
 | 
	
		
			
				|  |  |          $last_slash_idx = strrpos($method, '/');
 | 
	
		
			
				|  |  |          if ($last_slash_idx === false) {
 | 
	
		
			
				|  |  |              throw new \InvalidArgumentException(
 | 
	
	
		
			
				|  | @@ -213,6 +220,12 @@ class BaseStub
 | 
	
		
			
				|  |  |              $hostname = $this->hostname;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        // Remove the port if it is 443
 | 
	
		
			
				|  |  | +        // See https://github.com/grpc/grpc/blob/07c9f7a36b2a0d34fcffebc85649cf3b8c339b5d/src/core/lib/security/transport/client_auth_filter.cc#L205
 | 
	
		
			
				|  |  | +        if ((strlen($hostname) > 4) && (substr($hostname, -4) === ":443")) {
 | 
	
		
			
				|  |  | +            $hostname = substr($hostname, 0, -4);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          return 'https://'.$hostname.$service_name;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |