Skip to content

Instantly share code, notes, and snippets.

@Hades32
Created November 12, 2018 00:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hades32/a84eca1473544641dd312f18134f6c1b to your computer and use it in GitHub Desktop.
Save Hades32/a84eca1473544641dd312f18134f6c1b to your computer and use it in GitHub Desktop.
Handling JWT Validation with only RSA X.509 Public Key
package mn.max
import io.micronaut.context.annotation.Value
import io.micronaut.security.token.jwt.signature.rsa.RSASignatureConfiguration
import java.security.KeyFactory
import java.security.interfaces.RSAPublicKey
import java.security.spec.X509EncodedKeySpec
import java.util.*
import javax.inject.Named
import javax.inject.Singleton
@Singleton
@Named("validation")
class JwtSecurityConfig : RSASignatureConfiguration {
@Value("\${jwt-config.key:MISSING_KEY}")
var key = "TODO"
override fun getPublicKey(): RSAPublicKey {
val publicKey = KeyFactory.getInstance("RSA")
.generatePublic(X509EncodedKeySpec(Base64.getDecoder().decode(key)))
return publicKey as RSAPublicKey
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment