Example usage for org.apache.shiro.authc SimpleAccount setLocked

List of usage examples for org.apache.shiro.authc SimpleAccount setLocked

Introduction

In this page you can find the example usage for org.apache.shiro.authc SimpleAccount setLocked.

Prototype

public void setLocked(boolean locked) 

Source Link

Document

Sets whether or not the account is locked and can be used to login.

Usage

From source file:com.enioka.jqm.webui.shiro.JpaRealm.java

License:Open Source License

private SimpleAccount getUser(String login) {
    EntityManager em = null;//from www .  j a  v a  2 s .  c  om
    try {
        em = Helpers.getEm();
        RUser user = em.createQuery("SELECT u FROM RUser u WHERE UPPER(u.login) = UPPER(:l)", RUser.class)
                .setParameter("l", login).getSingleResult();

        // Credential is a password - in token, it is as a char array
        SimpleAccount res = new SimpleAccount(user.getLogin(), user.getPassword(), getName());

        if (user.getExpirationDate() != null) {
            res.setCredentialsExpired(user.getExpirationDate().before(Calendar.getInstance()));
        } else {
            // No limit = never expires
            res.setCredentialsExpired(false);
        }
        if (user.getHashSalt() != null) {
            res.setCredentialsSalt(ByteSource.Util.bytes(Hex.decode(user.getHashSalt())));
        } else {
            res.setCredentialsSalt(null);
        }
        res.setLocked(user.getLocked());

        // Roles
        for (RRole r : user.getRoles()) {
            res.addRole(r.getName());
            for (RPermission p : r.getPermissions()) {
                res.addStringPermission(p.getName());
            }
        }
        return res;
    } catch (NoResultException e) {
        // No such user in realm
        return null;
    } catch (RuntimeException e) {
        e.printStackTrace();
        throw e;
    } finally {
        em.close();
    }
}