Class ModelUtils

    • Field Detail

      • logger

        protected static final org.slf4j.Logger logger
    • Constructor Detail

      • ModelUtils

        public ModelUtils()
    • Method Detail

      • toJSONString

        public static String toJSONString​(Object object)
      • toJSONString

        public static String toJSONString​(Object object,
                                          boolean prettyPrint)
      • createRSAPublicKey

        public static RSAPublicKey createRSAPublicKey​(String publicKeyPem)
                                               throws Exception
        Creates a RSAPublicKey instance from its string PEM representation
        Parameters:
        publicKeyPem - the public key PEM string
        Returns:
        the RSA public key
        Throws:
        Exception - if it's not possible to create the RSA public key from the PEM string
      • createPublicKey

        public static PublicKey createPublicKey​(String publicKeyPem,
                                                String algorithm)
                                         throws Exception
        Creates a PublicKey instance from its string PEM representation
        Parameters:
        publicKeyPem - the public key PEM string
        algorithm - the key type (e.g. RSA)
        Returns:
        the public key
        Throws:
        Exception - if it's not possible to create the public key from the PEM string
      • isValid

        public static boolean isValid​(String token,
                                      PublicKey publicKey)
                               throws Exception
        Verifies the token validity
        Parameters:
        token - the base64 JWT token string
        publicKey - the realm's public key on server
        Returns:
        true if the token is valid, false otherwise
        Throws:
        Exception - if an error occurs constructing the verifier
      • isValid

        public static boolean isValid​(String token,
                                      PublicKey publicKey,
                                      boolean checkExpiration)
                               throws Exception
        Verifies the token validity
        Parameters:
        token - the base64 JWT token string
        publicKey - the public key to use for verification
        checkExpiration - if false token expiration check is disabled
        Returns:
        true if the token is valid, false otherwise
        Throws:
        Exception - if an unexpected error occurs (e.g. constructing the verifier)
      • verify

        public static void verify​(String token,
                                  PublicKey publicKey)
                           throws org.gcube.io.jsonwebtoken.security.SignatureException,
                                  org.gcube.io.jsonwebtoken.ExpiredJwtException,
                                  org.gcube.io.jsonwebtoken.JwtException,
                                  Exception
        Verifies the token signature and expiration
        Parameters:
        token - the base64 JWT token string
        publicKey - the public key to use for verification
        Throws:
        org.gcube.io.jsonwebtoken.security.SignatureException - if the token signature is invalid
        org.gcube.io.jsonwebtoken.ExpiredJwtException - if the token is expired
        org.gcube.io.jsonwebtoken.JwtException - if a JWT related problem is found
        Exception - if an unexpected error occurs (e.g. constructing the verifier)
      • getAccessTokenPayloadJSONStringFrom

        public static String getAccessTokenPayloadJSONStringFrom​(TokenResponse tokenResponse,
                                                                 boolean prettyPrint)
                                                          throws Exception
        Throws:
        Exception
      • getBase64Decoded

        protected static byte[] getBase64Decoded​(String string)
      • splitAndGet

        protected static String splitAndGet​(String encodedJWT,
                                            int index)
      • getDecodedHeader

        public static byte[] getDecodedHeader​(String value)
      • getEncodedHeader

        public static String getEncodedHeader​(String encodedJWT)
      • getDecodedPayload

        public static byte[] getDecodedPayload​(String value)
      • getEncodedPayload

        public static String getEncodedPayload​(String encodedJWT)
      • getDecodedSignature

        public static byte[] getDecodedSignature​(String value)
      • getEncodedSignature

        public static String getEncodedSignature​(String encodedJWT)
      • getClientIdFromToken

        public static String getClientIdFromToken​(AccessToken accessToken)