.. java:import:: java.io File .. java:import:: java.io IOException .. java:import:: java.util HashSet .. java:import:: java.util Iterator .. java:import:: java.util Map .. java:import:: java.util Set .. java:import:: org.apache.commons.jcs.access.behavior ICacheAccess .. java:import:: org.apache.logging.log4j LogManager .. java:import:: org.apache.logging.log4j Logger .. java:import:: org.apache.shiro.authz AuthorizationException .. java:import:: org.caosdb.server.caching Cache .. java:import:: org.jvnet.libpam PAMException .. java:import:: org.jvnet.libpam UnixUser Pam === .. java:package:: org.caosdb.server.accessControl :noindex: .. java:type:: public class Pam implements UserSource PAM UserSource for authenticating users via the Host's pam module. A User's existence check and the retrieval of a user's groups is done by the org.jvnet.libpam library. The authentication of a user via the password need root-access and is therefore done by a special shell script running with root privileges on the host. :author: Timm Fitschen (t.fitschen@indiscale.com) Fields ------ CACHE_REGION_AUTH ^^^^^^^^^^^^^^^^^ .. java:field:: public static final String CACHE_REGION_AUTH :outertype: Pam CACHE_REGION_GROUPS ^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String CACHE_REGION_GROUPS :outertype: Pam CACHE_REGION_USER_EXIST ^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String CACHE_REGION_USER_EXIST :outertype: Pam DEFAULT_PAM_SCRIPT ^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String DEFAULT_PAM_SCRIPT :outertype: Pam KEY_DEFAULT_USER_STATUS ^^^^^^^^^^^^^^^^^^^^^^^ .. java:field:: public static final String KEY_DEFAULT_USER_STATUS :outertype: Pam KEY_EMAIL ^^^^^^^^^ .. java:field:: public static final String KEY_EMAIL :outertype: Pam KEY_EXCLUDE ^^^^^^^^^^^ .. java:field:: public static final String KEY_EXCLUDE :outertype: Pam KEY_GROUP ^^^^^^^^^ .. java:field:: public static final String KEY_GROUP :outertype: Pam KEY_INCLUDE ^^^^^^^^^^^ .. java:field:: public static final String KEY_INCLUDE :outertype: Pam KEY_PAM_SCRIPT ^^^^^^^^^^^^^^ .. java:field:: public static final String KEY_PAM_SCRIPT :outertype: Pam KEY_ROLES ^^^^^^^^^ .. java:field:: public static final String KEY_ROLES :outertype: Pam KEY_USER ^^^^^^^^ .. java:field:: public static final String KEY_USER :outertype: Pam REGEX_SPLIT_CSV ^^^^^^^^^^^^^^^ .. java:field:: public static final String REGEX_SPLIT_CSV :outertype: Pam SEPARATOR ^^^^^^^^^ .. java:field:: public static final String SEPARATOR :outertype: Pam Methods ------- getDefaultUserEmail ^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public String getDefaultUserEmail(String username) :outertype: Pam getDefaultUserStatus ^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public UserStatus getDefaultUserStatus(String username) :outertype: Pam getName ^^^^^^^ .. java:method:: @Override public String getName() :outertype: Pam isUserExisting ^^^^^^^^^^^^^^ .. java:method:: @Override public boolean isUserExisting(String username) :outertype: Pam Check if that user is known by the host's PAM. Try the cache first. Only ask PAM directly if necessary and cache the results. :return: true iff the user is known. **See also:** :java:ref:`{@linkUserSource.isUserExisting(String)}.` isValid ^^^^^^^ .. java:method:: @Override public boolean isValid(String username, String password) :outertype: Pam **See also:** :java:ref:`{@linkUserSource.isValid(String,String)}.` resolveRolesForUsername ^^^^^^^^^^^^^^^^^^^^^^^ .. java:method:: @Override public Set resolveRolesForUsername(String username) :outertype: Pam **See also:** :java:ref:`{@linkUserSource.resolveRolesForUsername(String)}` setMap ^^^^^^ .. java:method:: @Override public void setMap(Map map) :outertype: Pam