mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-07-03 05:47:24 +00:00
feat(metrics): 运行指标服务端支持设置 HTTP 认证.
支持对运行指标服务端设置 HTTP 认证, 以防止运行指标被非法获取.
This commit is contained in:
114
scalabot-app/src/test/kotlin/util/UsernameAuthenticatorTest.kt
Normal file
114
scalabot-app/src/test/kotlin/util/UsernameAuthenticatorTest.kt
Normal file
@ -0,0 +1,114 @@
|
||||
package net.lamgc.scalabot.util
|
||||
|
||||
import com.google.gson.*
|
||||
import org.junit.jupiter.api.assertThrows
|
||||
import kotlin.test.*
|
||||
|
||||
class UsernameAuthenticatorTest {
|
||||
|
||||
@Test
|
||||
fun checkCredentialsTest() {
|
||||
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
||||
assertTrue(authenticator.checkCredentials("testUser", "testPassword"))
|
||||
assertFalse(authenticator.checkCredentials("falseUser", "testPassword"))
|
||||
assertFalse(authenticator.checkCredentials("testUser", "falsePassword"))
|
||||
}
|
||||
|
||||
@Test
|
||||
fun toJsonObjectTest() {
|
||||
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
||||
val jsonObject = authenticator.toJsonObject()
|
||||
assertEquals("testUser", jsonObject["username"]?.asString)
|
||||
assertEquals("testPassword", jsonObject["password"]?.asString)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun equalsTest() {
|
||||
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
||||
assertEquals(authenticator, UsernameAuthenticator("testUser", "testPassword"))
|
||||
assertEquals(authenticator.hashCode(), UsernameAuthenticator("testUser", "testPassword").hashCode())
|
||||
assertNotEquals(authenticator, UsernameAuthenticator("testUser", "falsePassword"))
|
||||
assertNotEquals(authenticator.hashCode(), UsernameAuthenticator("testUser", "falsePassword").hashCode())
|
||||
assertNotEquals(authenticator, UsernameAuthenticator("falseUser", "testPassword"))
|
||||
assertNotEquals(authenticator.hashCode(), UsernameAuthenticator("falseUser", "testPassword").hashCode())
|
||||
assertNotEquals(authenticator, UsernameAuthenticator("falseUser", "falsePassword"))
|
||||
assertNotEquals(authenticator.hashCode(), UsernameAuthenticator("falseUser", "falsePassword").hashCode())
|
||||
assertFalse(authenticator.equals(null))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class UsernameAuthenticatorSerializerTest {
|
||||
|
||||
@Test
|
||||
fun serializeTest() {
|
||||
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
||||
val jsonElement = UsernameAuthenticatorSerializer.serialize(authenticator, null, null)
|
||||
assertTrue(jsonElement.isJsonObject)
|
||||
val jsonObject = jsonElement.asJsonObject
|
||||
assertEquals("testUser", jsonObject["username"]?.asString)
|
||||
assertEquals("testPassword", jsonObject["password"]?.asString)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun deserializeTest() {
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonArray(), null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonPrimitive(""), null, null)
|
||||
}
|
||||
assertNull(UsernameAuthenticatorSerializer.deserialize(JsonNull.INSTANCE, null, null))
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("username", "testUser")
|
||||
}, null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("username", "testUser")
|
||||
add("password", JsonArray())
|
||||
}, null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("password", "testPassword")
|
||||
}, null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
add("username", JsonArray())
|
||||
addProperty("password", "testPassword")
|
||||
}, null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("username", "")
|
||||
addProperty("password", "")
|
||||
}, null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("username", "testUser")
|
||||
addProperty("password", "")
|
||||
}, null, null)
|
||||
}
|
||||
assertThrows<JsonParseException> {
|
||||
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("username", "")
|
||||
addProperty("password", "testPassword")
|
||||
}, null, null)
|
||||
}
|
||||
|
||||
val authenticator = UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
||||
addProperty("username", "testUser")
|
||||
addProperty("password", "testPassword")
|
||||
}, null, null)
|
||||
assertNotNull(authenticator)
|
||||
|
||||
assertTrue(authenticator.checkCredentials("testUser", "testPassword"))
|
||||
assertFalse(authenticator.checkCredentials("falseUser", "testPassword"))
|
||||
assertFalse(authenticator.checkCredentials("testUser", "falsePassword"))
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user