/** * Create user - persist to database * * @param userEntity * @return true if success */ public boolean createUser(UserEntity userEntity) { if (!userDao.checkAvailable(userEntity.getUserName())) { FacesMessage message = constructErrorMessage( String.format( getMessageBundle().getString("userExistsMsg"), userEntity.getUserName()), null); getFacesContext().addMessage(null, message); return false; } try { userDao.save(userEntity); } catch (Exception e) { FacesMessage message = constructFatalMessage(e.getMessage(), null); getFacesContext().addMessage(null, message); return false; } return true; }
/** Construct UserDetails instance required by spring security */ public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException { UserEntity user = userDao.loadUserByUserName(userName); if (user == null) { throw new UsernameNotFoundException( String.format(getMessageBundle().getString("badCredentials"), userName)); } // Just one simple authority, basically it should be located in the additional table of database Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(); authorities.add(new SimpleGrantedAuthority("ROLE_USER")); User userDetails = new User(user.getUserName(), user.getPassword(), authorities); return userDetails; }