public boolean validateToken()

in src/main/java/com/amazon/photosharing/facade/TokenFacade.java [74:114]


    public boolean validateToken(String p_token) {
        String username = TokenGenerator.getInstance().getUsernameFromToken(p_token);

        _logger.debug("Token: " + p_token);
        _logger.debug("Username: " + username);

        String token = TokenStorage.getInstance().getToken(username);

        if (token == null) {
            _logger.debug("Token is null, trying to get it from DB");
            Token tmpToken = findToken(username);
            if (tmpToken == null)
                return false;

            TokenStorage.getInstance().storeToken(username, tmpToken.getToken());
            token = tmpToken.getToken();
        }

        if (token.equals(p_token)) {
            _logger.debug("Tokens are the same");
            boolean isValid = TokenGenerator.getInstance().validateToken(token);
            _logger.debug("Is token valid: " + isValid);

            if (!isValid) {
                TokenStorage.getInstance().removeToken(username);
                Token tmpToken = findToken(username);

                if (tmpToken != null) {
                    beginTx();
                    em().remove(tmpToken);
                    commitTx();
                }
            }

            return isValid;
        }
        else {
            _logger.info("Tokens not the same");
            return false;
        }
    }