'From Pharo7.0alpha of 10 August 2018 [Build information: Pharo-7.0+alpha.build.1167.sha.6958d1a6c975e6c27a48c5ab74dc6145f9c23c06 (32 Bit)] on 14 August 2018 at 2:59:09.114161 pm'! "Change Set: ZincCustomServerName Date: 14 August 2018 Author: TorstenBergmann Allows to set a custom Zinc server name for security constrained environments. "! Object subclass: #ZnHeaders instanceVariableNames: 'headers ' classVariableNames: 'CommonHeaders ServerString ' poolDictionaries: '' category: 'Zinc-HTTP-Core'! !ZnHeaders class methodsFor: 'accessing' stamp: 'TorstenBergmann 8/14/2018 14:47'! serverString: aString "By default Zinc gives Server informations like framework and Pharo version in the header. If for secured environments one wants to return a different or no info this method can be used to return a custom Server name" ServerString := aString! ! !ZnHeaders class methodsFor: 'instance creation' stamp: 'TorstenBergmann 8/14/2018 14:42'! defaultResponseHeaders ^ self new at: 'Server' put: ServerString; at: 'Date' put: ZnUtils httpDate; yourself! ! !ZnHeaders class methodsFor: 'class initialization' stamp: 'TorstenBergmann 8/14/2018 14:42'! initialize ServerString := ZnConstants defaultServerString. CommonHeaders := ( #( 'Content-Length' 'Content-Type' 'Date' 'Server' 'Connection' 'User-Agent' 'Host' 'Accept' 'Accept-Language' 'Accept-Encoding' 'Referer' 'Dnt' 'Cookie' 'Set-Cookie' 'Authorization' 'WWW-Authenticate' 'Proxy-Authorization' 'Content-Encoding' 'Transfer-Encoding' 'Location' 'If-Modified-Since' 'Content-Disposition' 'X-Zinc-Remote-Address' 'X-Forwarded-Server' 'X-Forwarded-For' 'X-Forwarded-Host' ) collect: [ :each | ZnUtils capitalizeString: each ]) asSet! ! "Postscript: Reinitialize ZnHeaders to set the class variable" ZnHeaders initialize! !