@Override public Set<Principal> rolesOf(Subject subject) { Set<DummyUserPrincipal> dummyPrincipals = subject.getPrincipals(DummyUserPrincipal.class); assert dummyPrincipals.size() <= 1; // DummyUserPrincipal found if (!dummyPrincipals.isEmpty()) { return getOnlyElement(dummyPrincipals).getRoles(); } // else { Set<UserPrincipal> users = subject.getPrincipals(UserPrincipal.class); assert users.size() == 1 : "Too many/less UserPrincipals in subject: " + users; DummyUserPrincipal dummyUser = delegateLoginModule.userForName(getOnlyElement(users).getName()); return dummyUser != null ? dummyUser.getRoles() : Collections.EMPTY_SET; } }