https://kotlinlang.org logo
#russian
Title
# russian
y

yorlov

10/13/2018, 8:50 AM
Коллеги, в ktor 0.9.5 у меня есть вот такой роут
Copy code
authenticate {

	get<Issue> { issue ->
		val jira = call.principal<Jira>() ?: return@get call.respond(HttpStatusCode.Unauthorized)
		call.respond(controller.onIssue(jira, issue))
	}
}
Собственно тут мне очень не нравится эта часть
?: return@get call.respond(HttpStatusCode.Unauthorized)
, но без нее никак ибо
call.principal
возвращает nullable тип Собственно, вопрос, почему так, в смысле почему
call.principal
потенциально может вернуть null? Я ожидал, что если аутентификация не прошла, то мой роут совсем не будет вызываться, а если я буду пытаться получить principal`a на роуте без аутентификации, то будет exception и дополнительных проверок делать не надо
v

voddan

10/14/2018, 2:06 PM
Как я понимаю null возвращается если тип авторизации не Jira, а что-то другое. Я бы в этом месте кидал ексепшен и не беспокоился
2 Views