in src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/slack/SlackWebApiImpl.kt [140:165]
override fun oauthAccess(
clientId: String,
clientSecret: String,
code: String,
redirectUrl: String
): OauthAccessToken = readOnlyRequest {
val encodedSecret = Base64.getEncoder().encodeToString("$clientId:$clientSecret".toByteArray())
val response = request(
"oauth.access",
"",
parameters = listOf(
Pair("code", code),
Pair("redirect_uri", redirectUrl)
),
headers = mapOf(
"Authorization" to "Basic $encodedSecret"
)
)
if (response.isException || response.message == null) {
OauthAccessToken(ok = false, error = response.message ?: unknownError)
} else {
mapper.readValue(response.message, OauthAccessToken::class.java)
}
}