library/src/main/java/org/apache/fineract/cn/anubis/security/FinKeycloakAuthenticationProvider.java [105:136]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                default:
                    logger.debug("Authentication failed for a token with a token type other than tenant or system.");
                    throw AmitAuthenticationException.invalidTokenIssuer(tokenInfo.getType().getIssuer());
            }
        }).orElseGet(() -> guestAuthenticator.authenticate(user));
    }

    private Optional<String> getJwtTokenString(final String authenticationHeader) {
        if ((authenticationHeader == null) || authenticationHeader.equals(
                TokenConstants.NO_AUTHENTICATION)){
            return Optional.empty();
        }

        if (!authenticationHeader.startsWith(TokenConstants.PREFIX)) {
            logger.debug("Authentication failed for a token which does not begin with the token prefix.");
            throw AmitAuthenticationException.invalidHeader();
        }
        return Optional.of(authenticationHeader.substring(TokenConstants.PREFIX.length()).trim());
    }

    @Nonnull private TokenInfo getTokenInfo(final String token)
    {
        try {
            @SuppressWarnings("unchecked")
            final Jwt<Header, Claims> jwt = Jwts.parser().setSigningKeyResolver(new SigningKeyResolver() {
                @Override public Key resolveSigningKey(final JwsHeader header, final Claims claims) {
                    final TokenType tokenType = getTokenTypeFromClaims(claims);// TokenType.TENANT;//getTokenTypeFromClaims(claims);
                    final String keyTimestamp = getKeyTimestampFromClaims(claims);

                    try {
                        switch (tokenType) {
                            case TENANT:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



library/src/main/java/org/apache/fineract/cn/anubis/security/IsisAuthenticatedAuthenticationProvider.java [104:135]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        default:
          logger.debug("Authentication failed for a token with a token type other than tenant or system.");
          throw AmitAuthenticationException.invalidTokenIssuer(tokenInfo.getType().getIssuer());
      }
    }).orElseGet(() -> guestAuthenticator.authenticate(user));
  }

  private Optional<String> getJwtTokenString(final String authenticationHeader) {
    if ((authenticationHeader == null) || authenticationHeader.equals(
        TokenConstants.NO_AUTHENTICATION)){
      return Optional.empty();
    }

    if (!authenticationHeader.startsWith(TokenConstants.PREFIX)) {
      logger.debug("Authentication failed for a token which does not begin with the token prefix.");
      throw AmitAuthenticationException.invalidHeader();
    }
    return Optional.of(authenticationHeader.substring(TokenConstants.PREFIX.length()).trim());
  }

  @Nonnull private TokenInfo getTokenInfo(final String token)
  {
    try {
      @SuppressWarnings("unchecked")
      final Jwt<Header, Claims> jwt = Jwts.parser().setSigningKeyResolver(new SigningKeyResolver() {
        @Override public Key resolveSigningKey(final JwsHeader header, final Claims claims) {
          final TokenType tokenType = getTokenTypeFromClaims(claims);
          final String keyTimestamp = getKeyTimestampFromClaims(claims);

          try {
            switch (tokenType) {
              case TENANT:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



