in src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/auth/TestAuthController.kt [36:65]
override fun doHandle(request: HttpServletRequest, response: HttpServletResponse): ModelAndView {
val code = request.getParameter("code")
val clientId = request.session.getAttribute("slack.clientId") as? String?
?: return authResult(false, "Unexpected error: can't find client id in session")
val clientSecret = request.session.getAttribute("slack.clientSecret") as? String?
?: return authResult(false, "Unexpected error: can't find client secret in session")
val redirectUrl = WebUtil.getRootUrl(request) + PATH
val oauthToken = slackApi.oauthAccess(
clientId = clientId,
clientSecret = clientSecret,
code = code,
redirectUrl = redirectUrl
)
if (!oauthToken.ok) {
if (oauthToken.error == "bad_redirect_uri") {
warnBadRedirectUriInfo(request)
}
return authResult(false, "Test authentication failed: ${oauthToken.error}")
}
val userIdentity = slackApi.usersIdentity(oauthToken.accessToken)
if (!userIdentity.ok) {
return authResult(false, "Unexpected error: ${userIdentity.error}")
}
return authResult(true, "You successfully signed in as ${userIdentity.user.displayName}")
}