private <T extends Policy> List<Realm> findSamePolicyChildren(final Realm realm, final T policy) { List<Realm> result = new ArrayList<>(); for (Realm child : findChildren(realm)) { if ((policy instanceof AccountPolicy && child.getAccountPolicy() == null || policy.equals(child.getAccountPolicy())) || (policy instanceof PasswordPolicy && child.getPasswordPolicy() == null || policy.equals(child.getPasswordPolicy()))) { result.add(child); result.addAll(findSamePolicyChildren(child, policy)); } } return result; }
@Override public PasswordPolicy getPasswordPolicy() { return passwordPolicy == null && getParent() != null ? getParent().getPasswordPolicy() : passwordPolicy; }
private List<PasswordPolicy> getPasswordPolicies(final User user) { List<PasswordPolicy> policies = new ArrayList<>(); PasswordPolicy policy; // add resource policies for (ExternalResource resource : findAllResources(user)) { policy = resource.getPasswordPolicy(); if (policy != null) { policies.add(policy); } } // add realm policies for (Realm realm : realmDAO.findAncestors(user.getRealm())) { policy = realm.getPasswordPolicy(); if (policy != null) { policies.add(policy); } } return policies; }
if (realm != null) { realmDAO.findAncestors(realm).stream(). filter(ancestor -> ancestor.getPasswordPolicy() != null). forEach(ancestor -> { passwordPolicies.add(ancestor.getPasswordPolicy()); });
@Override public RealmTO getRealmTO(final Realm realm, final boolean admin) { RealmTO realmTO = new RealmTO(); realmTO.setKey(realm.getKey()); realmTO.setName(realm.getName()); realmTO.setParent(realm.getParent() == null ? null : realm.getParent().getKey()); realmTO.setFullPath(realm.getFullPath()); if (admin) { realmTO.setAccountPolicy(realm.getAccountPolicy() == null ? null : realm.getAccountPolicy().getKey()); realmTO.setPasswordPolicy(realm.getPasswordPolicy() == null ? null : realm.getPasswordPolicy().getKey()); realm.getActions().forEach(action -> { realmTO.getActions().add(action.getKey()); }); realm.getTemplates().forEach(template -> { realmTO.getTemplates().put(template.getAnyType().getKey(), template.get()); }); realm.getResources().forEach(resource -> { realmTO.getResources().add(resource.getKey()); }); } return realmTO; }