在这段生成的令牌包装与允许列表检查进入认证边界前审查它。
把缺失输入保留为 null,只接受修剪后以 tok_ 开头的令牌,检查允许列表,并且绝不泄露原始令牌。
kotlin
@JvmInline
value class ApiToken(val value: String)
fun <T> audit(value: T) {
println("token=$value")
}
fun parseTokens(raw: List<String?>): List<ApiToken?> =
raw.map { candidate ->
if (candidate == null) null
else ApiToken(candidate.trim())
}
fun isAllowed(tokens: List<ApiToken?>, expected: ApiToken): Boolean {
audit(expected)
return tokens.map { it?.value }.contains(expected.value)
}
生成代码仅作示例,不代表任何特定模型