private boolean isRealOwnerOfToken(HttpContext c, Cookie tokenCookie) throws IllegalAccessException, InvocationTargetException, InstantiationException { LOGGER.debug("HttpContext : " + c + " Cookie : " + tokenCookie); Token token = TokenFactory.getInstance().createToken(tokenCookie.getValue()); String hash = generateAttributesHash(c.getRequest()); return hash.equals(token.getAttributesHash()); }
/** * Merges all path patterns and and creates a single string value which will be equal with service * methods path annotation value and HTTP method type. Generated string will be used for * permission checks. * * @param token for checking permission list * @param matchedTemplates matched templates of context. They will be merged with reverse order * @param method HTTP Method of the request. Will be merged with * @return true if user is Authorized. */ private boolean isAuthorized(Token token, List<UriTemplate> matchedTemplates, String method) { StringBuilder path = new StringBuilder(); // Merge all path templates and generate a path. for (UriTemplate template : matchedTemplates) { path.insert(0, template.getTemplate()); } path.append(":").append(method); // Look at user permissions to see if the service is permitted. return token.getPermissions().contains(path.toString()); }