ActiveAnno

Web-based responsive document annotation tool

View the Project on GitHub MaxMello/ActiveAnno

activeannoservice / common

Package common

Types

Name Summary
ErrorCode Enum representing detailed errors which are more granular than just the http status codeenum class ErrorCode
HttpAuthentication Inspiration: https://www.sparkpost.com/docs/tech-resources/webhook-authentication/sealed class HttpAuthentication
HttpErrorResponse Data class to return on an http error, which can have a more detailed errorCode explaining the reason for the status codedata class HttpErrorResponse

Exceptions

Name Summary
ForbiddenException Custom exception indicating the user is not authorized properly (missing role), will be used to return appropriate http error codeclass ForbiddenException : HttpErrorException
GoneException Exception indicating that a resource is gone, will be used through StatusPages feature to return the proper status code when this exception is thrownclass GoneException : HttpErrorException
HttpErrorException Base exception for HTTP errors, can optionally include a detailed http erroropen class HttpErrorException : RuntimeException
UnauthorizedException Custom exception indicating the user is not authenticated properly (missing / invalid auth token), will be used to return appropriate http error codeclass UnauthorizedException : HttpErrorException

Extensions for External Classes

Name Summary
com.auth0.jwt.interfaces.DecodedJWT  
com.fasterxml.jackson.databind.JsonNode  
com.fasterxml.jackson.databind.node.ObjectNode  
io.ktor.application.ApplicationCall  
io.ktor.client.request.HttpRequestBuilder  
io.ktor.routing.Route  
io.ktor.util.pipeline.PipelineContext  
kotlin.Any  
kotlin.collections.Iterable  
kotlin.collections.MutableList  
kotlin.collections.MutableMap  
kotlin.Double  
kotlin.String  
org.litote.kmongo.coroutine.CoroutineDatabase  

Functions

Name Summary
getMessageString Given a message key and optionally a locale, return the message string. If the locale is missing, use the default locale (english)fun getMessageString(key: String, locale: Locale? = null): String
isTokenStillValid Validate JWT token, either accept the token as valid by configuration or call the configured authentication servicesuspend fun isTokenStillValid(client: HttpClient, jwt: String): Boolean
jwtFromHeader Extract the JWT Base64 string from the request header or throw UnauthorizedException if missingfun jwtFromHeader(call: ApplicationCall): String
measureTimeMillis Higher order helper function to measure and log the execution time of the passed function while returning the result of the functionfun <T> measureTimeMillis(loggingFunction: (Long) -> Unit, function: () -> T): T
validateRole Top level function to validate the roles for a JWTfun validateRole(jwt: String, requiredRoles: List<String>, onlyOneMustMatch: Boolean = false): Boolean