private void populateRoles(Properties rolesMaps) {
        roles.clear();

        Iterator<Map.Entry<Object, Object>> e = rolesMaps.entrySet().iterator();

        while (e.hasNext()) {
            Map.Entry<Object, Object> entry = e.next();

            String privileges = (String) entry.getValue();

            if (privileges == null) continue;

            String[] p = privileges.split(",");

            if (p.length <= 0) continue;

            ArrayList<GrantedAuthority> authrzs = new ArrayList<GrantedAuthority>();

            for (int j = 0; j < p.length; j++) {
                final String authority = p[j];

                log.info("fetch authority: " + authority);

                if (authority == null) continue;

                authrzs.add(new GrantedAuthority() {

                    @Override
                    public String getAuthority() {
                        return authority;
                    }
                });
            }

            log.info("Add role: " + entry.getKey());

            roles.put((String) entry.getKey(), authrzs);
        }
    }