1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2025-10-11 11:34:21 -04:00

Deprecate legacy VMess header with a planned decommission (#717)

This commit is contained in:
Xiaokang Wang
2021-03-01 13:26:54 +00:00
committed by GitHub
parent b084b4f980
commit 733c5dea88
2 changed files with 17 additions and 2 deletions

View File

@@ -191,11 +191,16 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
decryptor = bytes.NewReader(aeadData)
s.isAEADRequest = true
case !s.isAEADForced && errorAEAD == vmessaead.ErrNotFound:
case errorAEAD == vmessaead.ErrNotFound:
userLegacy, timestamp, valid, userValidationError := s.userValidator.Get(buffer.Bytes())
if !valid || userValidationError != nil {
return nil, drainConnection(newError("invalid user").Base(userValidationError))
}
if s.isAEADForced {
return nil, drainConnection(newError("invalid user: VMessAEAD is enforced and a non VMessAEAD connection is received. You can still disable this security feature with environment variable v2ray.vmess.aead.forced = false . You will not be able to enable legacy header workaround in the future."))
} else {
newError("Critical Warning: potentially invalid user: a non VMessAEAD connection is received. From 2022 Jan 1st, this kind of connection will be rejected by default. You should update or replace your client software now. ").AtWarning().WriteToLog()
}
user = userLegacy
iv := hashTimestamp(md5.New(), timestamp)
vmessAccount = userLegacy.Account.(*vmess.MemoryAccount)