Add authority for gRPC
This commit is contained in:
1 parent
c34f332771
commit
92d3136a23
10 files changed
+35
-24
No files matched your search
@@ -223,10 +223,12 @@ data class V2rayConfig(
|
|||||||
}
|
}
|
||||||
|
|
||||||
data class GrpcSettingsBean(var serviceName: String = "",
|
data class GrpcSettingsBean(var serviceName: String = "",
|
||||||
|
var authority: String? = null,
|
||||||
var multiMode: Boolean? = null)
|
var multiMode: Boolean? = null)
|
||||||
|
|
||||||
fun populateTransportSettings(transport: String, headerType: String?, host: String?, path: String?, seed: String?,
|
fun populateTransportSettings(transport: String, headerType: String?, host: String?, path: String?, seed: String?,
|
||||||
quicSecurity: String?, key: String?, mode: String?, serviceName: String?): String {
|
quicSecurity: String?, key: String?, mode: String?, serviceName: String?,
|
||||||
|
authority: String?): String {
|
||||||
var sni = ""
|
var sni = ""
|
||||||
network = transport
|
network = transport
|
||||||
when (network) {
|
when (network) {
|
||||||
@@ -290,7 +292,8 @@ data class V2rayConfig(
|
|||||||
val grpcSetting = GrpcSettingsBean()
|
val grpcSetting = GrpcSettingsBean()
|
||||||
grpcSetting.multiMode = mode == "multi"
|
grpcSetting.multiMode = mode == "multi"
|
||||||
grpcSetting.serviceName = serviceName ?: ""
|
grpcSetting.serviceName = serviceName ?: ""
|
||||||
sni = host ?: ""
|
grpcSetting.authority = authority ?: ""
|
||||||
|
sni = authority ?: ""
|
||||||
grpcSettings = grpcSetting
|
grpcSettings = grpcSetting
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -421,7 +424,7 @@ data class V2rayConfig(
|
|||||||
"grpc" -> {
|
"grpc" -> {
|
||||||
val grpcSetting = streamSettings?.grpcSettings ?: return null
|
val grpcSetting = streamSettings?.grpcSettings ?: return null
|
||||||
listOf(if (grpcSetting.multiMode == true) "multi" else "gun",
|
listOf(if (grpcSetting.multiMode == true) "multi" else "gun",
|
||||||
"",
|
grpcSetting.authority ?: "",
|
||||||
grpcSetting.serviceName)
|
grpcSetting.serviceName)
|
||||||
}
|
}
|
||||||
else -> null
|
else -> null
|
||||||
|
|||||||
@@ -504,7 +504,8 @@ class ServerActivity : BaseActivity() {
|
|||||||
quicSecurity = requestHost,
|
quicSecurity = requestHost,
|
||||||
key = path,
|
key = path,
|
||||||
mode = transportTypes(networks[network])[type],
|
mode = transportTypes(networks[network])[type],
|
||||||
serviceName = path
|
serviceName = path,
|
||||||
|
authority = requestHost,
|
||||||
)
|
)
|
||||||
if (sniField.isNotBlank()) {
|
if (sniField.isNotBlank()) {
|
||||||
sni = sniField
|
sni = sniField
|
||||||
|
|||||||
@@ -176,7 +176,8 @@ object AngConfigManager {
|
|||||||
vmessBean.requestHost,
|
vmessBean.requestHost,
|
||||||
vmessBean.path,
|
vmessBean.path,
|
||||||
vmessBean.headerType,
|
vmessBean.headerType,
|
||||||
vmessBean.path
|
vmessBean.path,
|
||||||
|
vmessBean.requestHost,
|
||||||
)
|
)
|
||||||
val allowInsecure = if (vmessBean.allowInsecure.isBlank()) {
|
val allowInsecure = if (vmessBean.allowInsecure.isBlank()) {
|
||||||
settingsStorage?.decodeBool(AppConfig.PREF_ALLOW_INSECURE) ?: false
|
settingsStorage?.decodeBool(AppConfig.PREF_ALLOW_INSECURE) ?: false
|
||||||
@@ -275,7 +276,8 @@ object AngConfigManager {
|
|||||||
vmessQRCode.host,
|
vmessQRCode.host,
|
||||||
vmessQRCode.path,
|
vmessQRCode.path,
|
||||||
vmessQRCode.type,
|
vmessQRCode.type,
|
||||||
vmessQRCode.path
|
vmessQRCode.path,
|
||||||
|
vmessQRCode.host
|
||||||
)
|
)
|
||||||
|
|
||||||
val fingerprint = vmessQRCode.fp ?: streamSetting.tlsSettings?.fingerprint
|
val fingerprint = vmessQRCode.fp ?: streamSetting.tlsSettings?.fingerprint
|
||||||
@@ -383,7 +385,8 @@ object AngConfigManager {
|
|||||||
queryParam["quicSecurity"],
|
queryParam["quicSecurity"],
|
||||||
queryParam["key"],
|
queryParam["key"],
|
||||||
queryParam["mode"],
|
queryParam["mode"],
|
||||||
queryParam["serviceName"]
|
queryParam["serviceName"],
|
||||||
|
queryParam["authority"]
|
||||||
)
|
)
|
||||||
fingerprint = queryParam["fp"] ?: ""
|
fingerprint = queryParam["fp"] ?: ""
|
||||||
config.outboundBean?.streamSettings?.populateTlsSettings(
|
config.outboundBean?.streamSettings?.populateTlsSettings(
|
||||||
@@ -411,7 +414,6 @@ object AngConfigManager {
|
|||||||
.associate { it.split("=").let { (k, v) -> k to Utils.urlDecode(v) } }
|
.associate { it.split("=").let { (k, v) -> k to Utils.urlDecode(v) } }
|
||||||
config = ServerConfig.create(EConfigType.VLESS)
|
config = ServerConfig.create(EConfigType.VLESS)
|
||||||
val streamSetting = config.outboundBean?.streamSettings ?: return -1
|
val streamSetting = config.outboundBean?.streamSettings ?: return -1
|
||||||
var fingerprint = streamSetting.tlsSettings?.fingerprint
|
|
||||||
|
|
||||||
config.remarks = Utils.urlDecode(uri.fragment ?: "")
|
config.remarks = Utils.urlDecode(uri.fragment ?: "")
|
||||||
config.outboundBean?.settings?.vnext?.get(0)?.let { vnext ->
|
config.outboundBean?.settings?.vnext?.get(0)?.let { vnext ->
|
||||||
@@ -431,15 +433,18 @@ object AngConfigManager {
|
|||||||
queryParam["quicSecurity"],
|
queryParam["quicSecurity"],
|
||||||
queryParam["key"],
|
queryParam["key"],
|
||||||
queryParam["mode"],
|
queryParam["mode"],
|
||||||
queryParam["serviceName"]
|
queryParam["serviceName"],
|
||||||
|
queryParam["authority"]
|
||||||
)
|
)
|
||||||
fingerprint = queryParam["fp"] ?: ""
|
|
||||||
val pbk = queryParam["pbk"] ?: ""
|
|
||||||
val sid = queryParam["sid"] ?: ""
|
|
||||||
val spx = Utils.urlDecode(queryParam["spx"] ?: "")
|
|
||||||
streamSetting.populateTlsSettings(
|
streamSetting.populateTlsSettings(
|
||||||
queryParam["security"] ?: "", allowInsecure,
|
queryParam["security"] ?: "",
|
||||||
queryParam["sni"] ?: sni, fingerprint, queryParam["alpn"], pbk, sid, spx
|
allowInsecure,
|
||||||
|
queryParam["sni"] ?: sni,
|
||||||
|
queryParam["fp"] ?: "",
|
||||||
|
queryParam["alpn"],
|
||||||
|
queryParam["pbk"] ?: "",
|
||||||
|
queryParam["sid"] ?: "",
|
||||||
|
queryParam["spx"] ?: ""
|
||||||
)
|
)
|
||||||
} else if (str.startsWith(EConfigType.WIREGUARD.protocolScheme)) {
|
} else if (str.startsWith(EConfigType.WIREGUARD.protocolScheme)) {
|
||||||
val uri = URI(Utils.fixIllegalUrl(str))
|
val uri = URI(Utils.fixIllegalUrl(str))
|
||||||
@@ -520,7 +525,8 @@ object AngConfigManager {
|
|||||||
queryParam["security"],
|
queryParam["security"],
|
||||||
queryParam["key"],
|
queryParam["key"],
|
||||||
queryParam["mode"],
|
queryParam["mode"],
|
||||||
queryParam["serviceName"])
|
queryParam["serviceName"],
|
||||||
|
queryParam["authority"])
|
||||||
streamSetting.populateTlsSettings(
|
streamSetting.populateTlsSettings(
|
||||||
if (tls) TLS else "", allowInsecure, sni, fingerprint, null,
|
if (tls) TLS else "", allowInsecure, sni, fingerprint, null,
|
||||||
null, null, null
|
null, null, null
|
||||||
@@ -758,7 +764,8 @@ object AngConfigManager {
|
|||||||
|
|
||||||
"grpc" -> {
|
"grpc" -> {
|
||||||
dicQuery["mode"] = transportDetails[0]
|
dicQuery["mode"] = transportDetails[0]
|
||||||
dicQuery["serviceName"] = transportDetails[2]
|
dicQuery["authority"] = Utils.urlEncode(transportDetails[1])
|
||||||
|
dicQuery["serviceName"] = Utils.urlEncode(transportDetails[2])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
<string name="server_lab_more_function">النقل</string>
|
<string name="server_lab_more_function">النقل</string>
|
||||||
<string name="server_lab_head_type">نوع الرأس</string>
|
<string name="server_lab_head_type">نوع الرأس</string>
|
||||||
<string name="server_lab_mode_type">وضع gRPC</string>
|
<string name="server_lab_mode_type">وضع gRPC</string>
|
||||||
<string name="server_lab_request_host">طلب الاستضافة (host/ws host/h2 host)/QUIC security</string>
|
<string name="server_lab_request_host">طلب الاستضافة (host/ws host/h2 host)/QUIC security/gRPC Authority</string>
|
||||||
<string name="server_lab_path">المسار (ws path/h2 path)/QUIC key/kcp seed/gRPC serviceName</string>
|
<string name="server_lab_path">المسار (ws path/h2 path)/QUIC key/kcp seed/gRPC serviceName</string>
|
||||||
<string name="server_lab_stream_security">TLS</string>
|
<string name="server_lab_stream_security">TLS</string>
|
||||||
<string name="server_lab_allow_insecure">allowInsecure</string>
|
<string name="server_lab_allow_insecure">allowInsecure</string>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<string name="server_lab_more_function">انتقال</string>
|
<string name="server_lab_more_function">انتقال</string>
|
||||||
<string name="server_lab_head_type">نوع head</string>
|
<string name="server_lab_head_type">نوع head</string>
|
||||||
<string name="server_lab_mode_type">حالت gRPC</string>
|
<string name="server_lab_mode_type">حالت gRPC</string>
|
||||||
<string name="server_lab_request_host">میزبان درخواست (host/host ws/host h2)/امنیت QUIC</string>
|
<string name="server_lab_request_host">gRPC Authority/میزبان درخواست (host/host ws/host h2)/امنیت QUIC</string>
|
||||||
<string name="server_lab_path">مسیر (مسیر ws/ مسیر h2) کلید QUIC/دانه kcp/نامخدمات gRPC</string>
|
<string name="server_lab_path">مسیر (مسیر ws/ مسیر h2) کلید QUIC/دانه kcp/نامخدمات gRPC</string>
|
||||||
<string name="server_lab_stream_security">TLS</string>
|
<string name="server_lab_stream_security">TLS</string>
|
||||||
<string name="server_lab_allow_insecure">مجوز ناامن</string>
|
<string name="server_lab_allow_insecure">مجوز ناامن</string>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<string name="server_lab_more_function">Другие параметры</string>
|
<string name="server_lab_more_function">Другие параметры</string>
|
||||||
<string name="server_lab_head_type">Тип заголовка</string>
|
<string name="server_lab_head_type">Тип заголовка</string>
|
||||||
<string name="server_lab_mode_type">Режим gRPC</string>
|
<string name="server_lab_mode_type">Режим gRPC</string>
|
||||||
<string name="server_lab_request_host">Запрос узла (WS/H2) / Шифрование QUIC</string>
|
<string name="server_lab_request_host">Запрос узла (WS/H2) / Шифрование QUIC/gRPC Authority</string>
|
||||||
<string name="server_lab_path">Путь (WS/H2) / Ключ QUIC / Сид KCP / Сервис gRPC</string>
|
<string name="server_lab_path">Путь (WS/H2) / Ключ QUIC / Сид KCP / Сервис gRPC</string>
|
||||||
<string name="server_lab_stream_security">TLS</string>
|
<string name="server_lab_stream_security">TLS</string>
|
||||||
<string name="server_lab_allow_insecure">Разрешать небезопасные</string>
|
<string name="server_lab_allow_insecure">Разрешать небезопасные</string>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<string name="server_lab_more_function">Nâng cao</string>
|
<string name="server_lab_more_function">Nâng cao</string>
|
||||||
<string name="server_lab_head_type">Kiểu ngụy trang (type)</string>
|
<string name="server_lab_head_type">Kiểu ngụy trang (type)</string>
|
||||||
<string name="server_lab_mode_type">Chế độ gRPC</string>
|
<string name="server_lab_mode_type">Chế độ gRPC</string>
|
||||||
<string name="server_lab_request_host">Yêu cầu host(host/ws host/h2 host)/QUIC security</string>
|
<string name="server_lab_request_host">Yêu cầu host(host/ws host/h2 host)/QUIC security/gRPC Authority</string>
|
||||||
<string name="server_lab_path">path(ws path/h2 path)/QUIC key/kcp seed/gRPC serviceName</string>
|
<string name="server_lab_path">path(ws path/h2 path)/QUIC key/kcp seed/gRPC serviceName</string>
|
||||||
<string name="server_lab_stream_security">TLS</string>
|
<string name="server_lab_stream_security">TLS</string>
|
||||||
<string name="server_lab_allow_insecure">allowInsecure</string>
|
<string name="server_lab_allow_insecure">allowInsecure</string>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<string name="server_lab_more_function">底层传输方式(transport)</string>
|
<string name="server_lab_more_function">底层传输方式(transport)</string>
|
||||||
<string name="server_lab_head_type">伪装类型(type)</string>
|
<string name="server_lab_head_type">伪装类型(type)</string>
|
||||||
<string name="server_lab_mode_type">gRPC 传输模式(mode)</string>
|
<string name="server_lab_mode_type">gRPC 传输模式(mode)</string>
|
||||||
<string name="server_lab_request_host">伪装域名(host)(host/ws host/httpupgrade host/h2 host)/QUIC 加密方式</string>
|
<string name="server_lab_request_host">伪装域名(host)(host/ws host/httpupgrade host/h2 host)/QUIC 加密方式/gRPC Authority</string>
|
||||||
<string name="server_lab_path">path(ws path/httpupgrade path/h2 path)/QUIC 加密密钥/kcp seed/gRPC serviceName</string>
|
<string name="server_lab_path">path(ws path/httpupgrade path/h2 path)/QUIC 加密密钥/kcp seed/gRPC serviceName</string>
|
||||||
<string name="server_lab_stream_security">传输层安全(TLS)</string>
|
<string name="server_lab_stream_security">传输层安全(TLS)</string>
|
||||||
<string name="server_lab_allow_insecure">跳过证书验证(allowInsecure)</string>
|
<string name="server_lab_allow_insecure">跳过证书验证(allowInsecure)</string>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
<string name="server_lab_more_function">底層傳輸方式 (transport)</string>
|
<string name="server_lab_more_function">底層傳輸方式 (transport)</string>
|
||||||
<string name="server_lab_head_type">標頭類型</string>
|
<string name="server_lab_head_type">標頭類型</string>
|
||||||
<string name="server_lab_mode_type">gRPC 傳輸模式 (mode)</string>
|
<string name="server_lab_mode_type">gRPC 傳輸模式 (mode)</string>
|
||||||
<string name="server_lab_request_host">要求主機 (host)(host/ws host/httpupgrade host/h2 host)/QUIC 加密方式</string>
|
<string name="server_lab_request_host">要求主機 (host)(host/ws host/httpupgrade host/h2 host)/QUIC 加密方式/gRPC Authority</string>
|
||||||
<string name="server_lab_path">path(ws path/httpupgrade path/h2 path)/QUIC 加密金鑰/kcp seed/gRPC serviceName</string>
|
<string name="server_lab_path">path(ws path/httpupgrade path/h2 path)/QUIC 加密金鑰/kcp seed/gRPC serviceName</string>
|
||||||
<string name="server_lab_stream_security">傳輸層安全 (TLS)</string>
|
<string name="server_lab_stream_security">傳輸層安全 (TLS)</string>
|
||||||
<string name="server_lab_allow_insecure">跳過憑證驗證 (allowInsecure)</string>
|
<string name="server_lab_allow_insecure">跳過憑證驗證 (allowInsecure)</string>
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
<string name="server_lab_more_function">Transport</string>
|
<string name="server_lab_more_function">Transport</string>
|
||||||
<string name="server_lab_head_type">head type</string>
|
<string name="server_lab_head_type">head type</string>
|
||||||
<string name="server_lab_mode_type">gRPC mode</string>
|
<string name="server_lab_mode_type">gRPC mode</string>
|
||||||
<string name="server_lab_request_host">request host(host/ws host/httpupgrade host/h2 host)/QUIC security</string>
|
<string name="server_lab_request_host">request host(host/ws host/httpupgrade host/h2 host)/QUIC security/gRPC Authority</string>
|
||||||
<string name="server_lab_path">path(ws path/httpupgrade path/h2 path)/QUIC key/kcp seed/gRPC serviceName</string>
|
<string name="server_lab_path">path(ws path/httpupgrade path/h2 path)/QUIC key/kcp seed/gRPC serviceName</string>
|
||||||
<string name="server_lab_stream_security">TLS</string>
|
<string name="server_lab_stream_security">TLS</string>
|
||||||
<string name="server_lab_stream_fingerprint" translatable="false">Fingerprint</string>
|
<string name="server_lab_stream_fingerprint" translatable="false">Fingerprint</string>
|
||||||
|
|||||||
Reference in new issue
Block a user