@SuppressWarnings("unchecked") private static DomainDriver loadDomainDriver(String name) throws ClassNotFoundException { try { return ServiceProvider.getService(name); } catch (IllegalStateException e) { return ServiceProvider.getService((Class<? extends DomainDriver>) Class.forName(name)); } }
/** * Gets the encryption that has computed the specified digest. * * <p>As digests in password encryption are usually made up of an encryption algorithm identifier, * the factory can then find the algorithm that matches the specified digest. If the digest * doesn't contain any algorithm identifier, then the UnixDES is returned (yet it is the only one * supported by Silverpeas that doesn't generate an algorithm identifier in the digest). In the * case the identifier in the digest isn't known, then a exception is thrown. * * @param digest the digest from which the password encryption has be found. * @return the password encryption that has computed the specified digest. * @throws IllegalArgumentException if the digest was not computed by any of the password * encryption supported in Silverpeas. */ public static PasswordEncryption getPasswordEncryption(String digest) throws IllegalArgumentException { Set<PasswordEncryption> availableEncrypts = ServiceProvider.getAllServices(PasswordEncryption.class); PasswordEncryption encryption = availableEncrypts .stream() .filter(encrypt -> encrypt.doUnderstandDigest(digest)) .findFirst() .orElseThrow( () -> new IllegalArgumentException( "Digest '" + digest + "' not understand by any of the available encryption in Silverpeas")); return encryption; }
private GroupManager getGroupManager() { return ServiceProvider.getService(GroupManager.class); }
private UserManager getUserManager() { return ServiceProvider.getService(UserManager.class); }
/** * Gets the password encryption that is used by default in Silverpeas to encrypt the user * passwords and to check them. * * @return the current default password encryption. */ public static PasswordEncryption getDefaultPasswordEncryption() { return ServiceProvider.getService(UnixSHA512Encryption.class); }
private PublicationService getPublicationService() { if (publicationService == null) { publicationService = ServiceProvider.getService(PublicationService.class); } return publicationService; }
/** * Silverpeas processes management services access. * * @return the instance of process manager services. */ public static ProcessManagement getProcessManagement() { return ServiceProvider.getService(ProcessManagement.class); }