Bearer tokens are a standard which is used in OAuth 2.0. Although there have been discussions if the security mechanisms are significantly weaker than the use of using signatures as many implementations of OAuth 1.0 did (see http://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-00), bearer tokens are part of the OAuth 2.0 specification and therefore widely adopted in nearly all implementations.
The syntax of Bearer tokens is specified in RFC6750 (http://http://tools.ietf.org/html/rfc6750)
This is a lean utils object to create specification compliant Bearers in Scala using the
The standard generate function returns a token of 32 byte length. A second polymorphic functions allows for the generation of a token of individual size.
The syntax of Bearer tokens is specified in RFC6750 (http://http://tools.ietf.org/html/rfc6750)
This is a lean utils object to create specification compliant Bearers in Scala using the
java.security.SecureRandom
implementation as a randomizer.The standard generate function returns a token of 32 byte length. A second polymorphic functions allows for the generation of a token of individual size.
import scala.util._
import java.security.SecureRandom
/*
* Generates a Bearer Token with the length of 32 characters according to the
* specification RFC6750 (http://http://tools.ietf.org/html/rfc6750)
*/
object BearerTokenGenerator {
val TOKEN_LENGTH = 32
val TOKEN_CHARS =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._"
val secureRandom = new SecureRandom()
def generateToken:String =
generateToken(TOKEN_LENGTH)
def generateToken(tokenLength: Int): String =
if(tokenLength == 0) "" else TOKEN_CHARS(secureRandom.nextInt(TOKEN_CHARS.length())) +
generateToken(tokenLength - 1)
}
Kommentare
Kommentar veröffentlichen