Search in sources :

Example 6 with User

use of com.keybox.manage.model.User in project KeyBox by skavanagh.

the class AuthDB method getUserByUID.

/**
     * returns user base on username
     *
     * @param con DB connection
     * @param uid username id
     * @return user object
     */
public static User getUserByUID(Connection con, String uid) {
    User user = null;
    try {
        PreparedStatement stmt = con.prepareStatement("select * from  users where lower(username) like lower(?)");
        stmt.setString(1, uid);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {
            user = new User();
            user.setId(rs.getLong("id"));
            user.setFirstNm(rs.getString("first_nm"));
            user.setLastNm(rs.getString("last_nm"));
            user.setEmail(rs.getString("email"));
            user.setUsername(rs.getString("username"));
            user.setUserType(rs.getString("user_type"));
            user.setProfileList(UserProfileDB.getProfilesByUser(con, user.getId()));
        }
        DBUtils.closeRs(rs);
        DBUtils.closeStmt(stmt);
    } catch (Exception e) {
        log.error(e.toString(), e);
    }
    return user;
}
Also used : User(com.keybox.manage.model.User) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement)

Example 7 with User

use of com.keybox.manage.model.User in project KeyBox by skavanagh.

the class ExternalAuthUtil method login.

/**
     * external auth login method
     *
     * @param auth contains username and password
     * @return auth token if success
     */
public static String login(final Auth auth) {
    String authToken = null;
    if (externalAuthEnabled && auth != null && StringUtils.isNotEmpty(auth.getUsername()) && StringUtils.isNotEmpty(auth.getPassword())) {
        CallbackHandler handler = new CallbackHandler() {

            @Override
            public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
                for (Callback callback : callbacks) {
                    if (callback instanceof NameCallback) {
                        ((NameCallback) callback).setName(auth.getUsername());
                    } else if (callback instanceof PasswordCallback) {
                        ((PasswordCallback) callback).setPassword(auth.getPassword().toCharArray());
                    }
                }
            }
        };
        Connection con = null;
        try {
            LoginContext loginContext = new LoginContext(JAAS_MODULE, handler);
            //will throw exception if login fail
            loginContext.login();
            Subject subject = loginContext.getSubject();
            con = DBUtils.getConn();
            User user = AuthDB.getUserByUID(con, auth.getUsername());
            if (user == null) {
                user = new User();
                user.setUserType(User.ADMINISTRATOR);
                user.setUsername(auth.getUsername());
                //if it looks like name is returned default it
                for (Principal p : subject.getPrincipals()) {
                    if (p.getName().contains(" ")) {
                        String[] name = p.getName().split(" ");
                        if (name.length > 1) {
                            user.setFirstNm(name[0]);
                            user.setLastNm(name[name.length - 1]);
                        }
                    }
                }
                //set email
                if (auth.getUsername().contains("@")) {
                    user.setEmail(auth.getUsername());
                }
                user.setId(UserDB.insertUser(con, user));
            }
            authToken = UUID.randomUUID().toString();
            user.setAuthToken(authToken);
            user.setAuthType(Auth.AUTH_EXTERNAL);
            //set auth token
            AuthDB.updateLogin(con, user);
        } catch (LoginException e) {
            //auth failed return empty
            authToken = null;
        } catch (Exception e) {
            log.error(e.toString(), e);
        } finally {
            DBUtils.closeConn(con);
        }
    }
    return authToken;
}
Also used : User(com.keybox.manage.model.User) Connection(java.sql.Connection) Subject(javax.security.auth.Subject) LoginException(javax.security.auth.login.LoginException) IOException(java.io.IOException) LoginContext(javax.security.auth.login.LoginContext) LoginException(javax.security.auth.login.LoginException) Principal(java.security.Principal)

Example 8 with User

use of com.keybox.manage.model.User in project KeyBox by skavanagh.

the class UserDB method getUser.

/**
     * returns user base on id
     * @param con DB connection
     * @param userId user id
     * @return user object
     */
public static User getUser(Connection con, Long userId) {
    User user = null;
    try {
        PreparedStatement stmt = con.prepareStatement("select * from  users where id=?");
        stmt.setLong(1, userId);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {
            user = new User();
            user.setId(rs.getLong("id"));
            user.setFirstNm(rs.getString(FIRST_NM));
            user.setLastNm(rs.getString(LAST_NM));
            user.setEmail(rs.getString(EMAIL));
            user.setUsername(rs.getString(USERNAME));
            user.setPassword(rs.getString(PASSWORD));
            user.setAuthType(rs.getString(AUTH_TYPE));
            user.setUserType(rs.getString(USER_TYPE));
            user.setSalt(rs.getString("salt"));
            user.setProfileList(UserProfileDB.getProfilesByUser(con, userId));
        }
        DBUtils.closeRs(rs);
        DBUtils.closeStmt(stmt);
    } catch (Exception e) {
        log.error(e.toString(), e);
    }
    return user;
}
Also used : User(com.keybox.manage.model.User) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement)

Example 9 with User

use of com.keybox.manage.model.User in project KeyBox by skavanagh.

the class UserDB method getUser.

/**
     * returns user base on id
     * @param userId user id
     * @return user object
     */
public static User getUser(Long userId) {
    User user = null;
    Connection con = null;
    try {
        con = DBUtils.getConn();
        user = getUser(con, userId);
    } catch (Exception e) {
        log.error(e.toString(), e);
    } finally {
        DBUtils.closeConn(con);
    }
    return user;
}
Also used : User(com.keybox.manage.model.User) Connection(java.sql.Connection)

Aggregations

User (com.keybox.manage.model.User)9 Connection (java.sql.Connection)5 PreparedStatement (java.sql.PreparedStatement)5 ResultSet (java.sql.ResultSet)5 ArrayList (java.util.ArrayList)2 IOException (java.io.IOException)1 Principal (java.security.Principal)1 Subject (javax.security.auth.Subject)1 LoginContext (javax.security.auth.login.LoginContext)1 LoginException (javax.security.auth.login.LoginException)1 Action (org.apache.struts2.convention.annotation.Action)1