When SAS client machines access the SAS® Content Server to save, rename, or open files, projects, or folders, they do so by using Web services. These Web services have security measures in place that require the clocks on the servers to be set to within five minutes of each other. Each server's current time is converted to Greenwich Mean Time (GMT), and it must be within 5 minutes of the times of the other servers. If they are not set to within five minutes of each other, the following errors might occur:
SAS.EG.SDS.SDSException: The message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired); nested exception is org.apache.ws.security.WSSecurityException: The message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired) ---> System.Web.Services.Protocols.SoapHeaderException: The message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired); nested exception is org.apache.ws.security.WSSecurityException: The message has expired (WSSecurityEngine: Invalid timestamp The security semantics of the message have expired)
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at SAS.EG.SDS.WebServices.SASTrust.SASTrustService.RequestSecurityToken(RequestSecurityTokenType RequestSecurityToken1)
at SAS.EG.SDS.Metadata.AuthenticationManager.GetSTSToken()
at SAS.EG.SDS.Metadata.AuthenticationManager.GetToken(eTokenType type)
at SAS.EG.SDS.WebServices.CustomSecurityClientOutputFilter.SecureMessage(SoapEnvelope envelope, Security security)
at Microsoft.Web.Services3.Security.SendSecurityFilter.ProcessMessage(SoapEnvelope envelope)
at Microsoft.Web.Services3.Pipeline.ProcessOutputMessage(SoapEnvelope envelope)
at Microsoft.Web.Services3.Xml.SoapEnvelopeWriter.Finish()
at Microsoft.Web.Services3.Xml.XmlWrappingWriter.Flush()
at System.Web.Services.Protocols.SoapHttpClientProtocol.Serialize(SoapClientMessage message)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at SAS.EG.SDS.Model.DAVService.DAVService.itemExists(String objectPath)
at SAS.EG.SDS.Model.ProjectBase.Update()
--- End of inner exception stack trace ---
at SAS.EG.SDS.Model.ProjectBase.Update()
at SAS.EG.ProjectElements.LinkedRegisteredProjectFile.Flush(IProvideMetadataDependencies projectDependencyProvider)
at SAS.EG.ProjectElements.ProjectFile.Save(IProvideMetadataDependencies projectDependencyProvider)
at SAS.EG.ProjectElements.ProjectCollection.Save(Boolean resetModified, Boolean forRecovery)
at SAS.EG.ProjectElements.ProjectCollection.SaveAs(SaveAsPath sap, DNADecoder dec)
at SAS.EG.SEGuide.MainForm.SaveAsProject(Boolean UseLocalPathOnly)
SAS.EG.SDS.SDSException: com.sun.xml.wss.impl.WssSoapFaultException: com.sun.xml.wss.impl.callback.TimestampValidationCallback$TimestampValidationException: The creation time is older than currenttime - timestamp-freshness-limit - max-clock-skew; nested exception is com.sun.xml.wss.XWSSecurityException: com.sun.xml.wss.impl.WssSoapFaultException: com.sun.xml.wss.impl.callback.TimestampValidationCallback$TimestampValidationException: The creation time is older than currenttime - timestamp-freshness-limit - max-clock-skew ---> System.Web.Services.Protocols.SoapHeaderException: com.sun.xml.wss.impl.WssSoapFaultException: com.sun.xml.wss.impl.callback.TimestampValidationCallback$TimestampValidationException: The creation time is older than currenttime - timestamp-freshness-limit - max-clock-skew; nested exception is com.sun.xml.wss.XWSSecurityException: com.sun.xml.wss.impl.WssSoapFaultException: com.sun.xml.wss.impl.callback.TimestampValidationCallback$TimestampValidationException: The creation time is older than currenttime - timestamp-freshness-limit - max-clock-skew
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at SAS.EG.SDS.Model.DAVService.DAVService.itemExists(String objectPath)
at SAS.EG.SDS.Model.ProjectBase.Update()
--- End of inner exception stack trace ---
at SAS.EG.SDS.Model.ProjectBase.Update()
at SAS.EG.ProjectElements.LinkedRegisteredProjectFile.Flush(IProvideMetadataDependencies projectDependencyProvider)
at SAS.EG.ProjectElements.ProjectFile.Save(IProvideMetadataDependencies projectDependencyProvider)
at SAS.EG.ProjectElements.ProjectCollection.Save(Boolean resetModified, Boolean forRecovery)
at SAS.EG.ProjectElements.ProjectCollection.SaveAs(SaveAsPath sap, DNADecoder dec)
at SAS.EG.SEGuide.MainForm.SaveAsProject(Boolean UseLocalPathOnly)
To avoid this problem, make sure that the times are set to within the five-minute time deviation.