public void init()

in redback-authentication/redback-authentication-providers/redback-authentication-jwt/src/main/java/org/apache/archiva/redback/authentication/jwt/JwtAuthenticator.java [220:277]


    public void init( ) throws AuthenticationException
    {
        super.initialize();
        this.keyCounter = new AtomicLong( System.currentTimeMillis( ) );
        this.keystoreType = userConfiguration.getString( AUTHENTICATION_JWT_KEYSTORETYPE, AUTHENTICATION_JWT_KEYSTORETYPE_MEMORY );
        this.fileStore = this.keystoreType.equals( AUTHENTICATION_JWT_KEYSTORETYPE_PLAINFILE );
        this.signatureAlgorithm = userConfiguration.getString( AUTHENTICATION_JWT_SIGALG, AUTHENTICATION_JWT_SIGALG_HS384 );
        this.maxInMemoryKeys = userConfiguration.getInt( AUTHENTICATION_JWT_MAX_KEYS, 5 );
        secretKey = new LinkedHashMap<Long, SecretKey>( )
        {
            @Override
            protected boolean removeEldestEntry( Map.Entry eldest )
            {
                return size( ) > maxInMemoryKeys;
            }
        };
        keyPair = new LinkedHashMap<Long, KeyPair>( )
        {
            @Override
            protected boolean removeEldestEntry( Map.Entry eldest )
            {
                return size( ) > maxInMemoryKeys;
            }
        };


        this.symmetricAlgorithm = this.signatureAlgorithm.startsWith( "HS" );

        if ( this.fileStore )
        {
            String file = userConfiguration.getString( AUTHENTICATION_JWT_KEYFILE, DEFAULT_KEYFILE );
            this.keystoreFilePath = Paths.get( file ).toAbsolutePath( );
            handleKeyfile( );
        }
        else
        {
            // In memory key store is the default
            addNewKey( );
        }
        this.parserMap.put(TokenType.ALL,  Jwts.parserBuilder( )
            .setSigningKeyResolver( getResolver( ) )
            .requireIssuer( ISSUER )
            .build( ));
        this.parserMap.put(TokenType.ACCESS_TOKEN,  Jwts.parserBuilder( )
            .setSigningKeyResolver( getResolver( ) )
            .requireIssuer( ISSUER )
            .require( TOKEN_TYPE, TokenType.ACCESS_TOKEN.getClaim() )
            .build( ));
        this.parserMap.put(TokenType.REFRESH_TOKEN,  Jwts.parserBuilder( )
            .setSigningKeyResolver( getResolver( ) )
            .requireIssuer( ISSUER )
            .require( TOKEN_TYPE, TokenType.REFRESH_TOKEN.getClaim() )
            .build( ));


        tokenLifetime = Duration.ofMillis( Long.parseLong( userConfiguration.getString( AUTHENTICATION_JWT_LIFETIME_MS, DEFAULT_LIFETIME ) ) );
        refreshTokenLifetime = Duration.ofMillis( Long.parseLong( userConfiguration.getString( AUTHENTICATION_JWT_REFRESH_LIFETIME_MS, DEFAULT_REFRESH_LIFETIME ) ) );
    }