Search in sources :

Example 1 with LoginUser

use of com.dappermoose.stsimplefinance.data.LoginUser in project spring-thymeleaf-simplefinance by heitkergm.

the class RegisterAction method processRegisterAction.

/**
 * Process register action.
 *
 * @param register the register
 * @param res the res
 * @param model the model
 * @param request the request
 * @return the string
 */
@Transactional
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String processRegisterAction(@Valid @ModelAttribute("register") final RegisterUser register, final BindingResult res, final Model model, final HttpServletRequest request) {
    if (res.hasErrors()) {
        model.addAttribute("register", register);
        model.addAttribute("tzones", context.getBean("tzones"));
        return "register";
    }
    // check if the user already exists
    final List<LoginUser> users = userRepository.findByUserName(register.getUserName());
    if (users.size() > 0) {
        final ObjectError objErr = new ObjectError("RegisterUser", messageSource.getMessage("register.duplicateUser", null, request.getLocale()));
        res.addError(objErr);
        model.addAttribute("register", register);
        model.addAttribute("tzones", context.getBean("tzones"));
        return "register";
    }
    // create user bean
    final LoginUser user = new LoginUser();
    user.setUserName(register.getUserName());
    user.setPassword(register.getPassword());
    user.setTzone(register.getTzone());
    userRepository.save(user);
    return "redirect:/main";
}
Also used : ObjectError(org.springframework.validation.ObjectError) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) Transactional(javax.transaction.Transactional) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 2 with LoginUser

use of com.dappermoose.stsimplefinance.data.LoginUser in project spring-thymeleaf-simplefinance by heitkergm.

the class UserDetailsDaoImpl method loadUserByUsername.

@Override
public UserDetails loadUserByUsername(final String userName) throws UsernameNotFoundException {
    List<LoginUser> users = userRepository.findByUserName(userName);
    if (users.size() <= 0) {
        throw new UsernameNotFoundException("User Name " + userName + " not found.");
    }
    LoginUser luser = users.get(0);
    UserDetails user = new User(luser.getUserName(), luser.getPassword(), YesNoEnum.toBoolean(luser.getEnabled()), true, true, true, AuthorityUtils.NO_AUTHORITIES);
    return user;
}
Also used : UsernameNotFoundException(org.springframework.security.core.userdetails.UsernameNotFoundException) UserDetails(org.springframework.security.core.userdetails.UserDetails) User(org.springframework.security.core.userdetails.User) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser)

Example 3 with LoginUser

use of com.dappermoose.stsimplefinance.data.LoginUser in project spring-thymeleaf-simplefinance by heitkergm.

the class ChangePasswordAction method mainAction.

/**
 * Main action. Display the form.
 *
 * @param model the model
 * @return the string
 */
@RequestMapping(value = "/changepwd", method = RequestMethod.GET)
public String mainAction(final Model model) {
    final ChangePwd changepwd = new ChangePwd();
    String userName = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
    List<LoginUser> users = userRepository.findByUserName(userName);
    LoginUser user = users.get(0);
    changepwd.setUserName(user.getUserName());
    changepwd.setTzone(user.getTzone());
    model.addAttribute("changepwd", changepwd);
    model.addAttribute("tzones", context.getBean("tzones"));
    return "changepwd";
}
Also used : ChangePwd(com.dappermoose.stsimplefinance.formbean.ChangePwd) User(org.springframework.security.core.userdetails.User) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 4 with LoginUser

use of com.dappermoose.stsimplefinance.data.LoginUser in project spring-thymeleaf-simplefinance by heitkergm.

the class ChangePasswordAction method processRegisterAction.

/**
 * Process change password action.
 *
 * @param changepwd the change password form data
 * @param res the res
 * @param model the model
 * @param request the request
 * @return the string
 */
@Transactional
@RequestMapping(value = "/changepwd", method = RequestMethod.POST)
public String processRegisterAction(@Valid @ModelAttribute("changepwd") final ChangePwd changepwd, final BindingResult res, final Model model, final HttpServletRequest request) {
    if (res.hasErrors()) {
        model.addAttribute("changepwd", changepwd);
        model.addAttribute("tzones", context.getBean("tzones"));
        return "changepwd";
    }
    // check the current password, etc.
    String userName = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername();
    List<LoginUser> users = userRepository.findByUserName(userName);
    LoginUser user = users.get(0);
    if (!user.checkpw(changepwd.getCurrentPassword())) {
        final ObjectError objErr = new ObjectError("User", messageSource.getMessage("changepwd.currpwd.bad", null, request.getLocale()));
        res.addError(objErr);
        model.addAttribute("changepwd", changepwd);
        model.addAttribute("tzones", context.getBean("tzones"));
        return "changepwd";
    }
    // modify user bean
    user.setPassword(changepwd.getPassword());
    user.setTzone(changepwd.getTzone());
    userRepository.save(user);
    // logout
    try {
        request.logout();
    } catch (ServletException se) {
        LOG.info("Servlet exception upon logout " + se.getMessage());
    }
    return "redirect:/main";
}
Also used : ServletException(javax.servlet.ServletException) User(org.springframework.security.core.userdetails.User) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) ObjectError(org.springframework.validation.ObjectError) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) Transactional(javax.transaction.Transactional) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with LoginUser

use of com.dappermoose.stsimplefinance.data.LoginUser in project spring-thymeleaf-simplefinance by heitkergm.

the class MainAction method mainAction.

/**
 * Main action.
 *
 * @param model
 *            - the model to display
 * @param principal
 *            - the user principal from spring security
 *
 * @return the string
 */
@RequestMapping("/main")
public String mainAction(final Model model, final Principal principal) {
    final List<LoginUser> logins = loginRepository.findByUserName(principal.getName());
    final List<Account> accounts = accountRepository.findByUser(logins.get(0));
    model.addAttribute("accounts", accounts);
    // get the overall balance.
    BigDecimal balance = BigDecimal.ZERO.setScale(2);
    for (final Account acct : accounts) {
        balance = balance.add(acct.getStartingBalance().setScale(2));
    }
    model.addAttribute("balance", balance);
    return "main";
}
Also used : Account(com.dappermoose.stsimplefinance.data.Account) LoginUser(com.dappermoose.stsimplefinance.data.LoginUser) BigDecimal(java.math.BigDecimal) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

LoginUser (com.dappermoose.stsimplefinance.data.LoginUser)6 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)4 Transactional (javax.transaction.Transactional)3 User (org.springframework.security.core.userdetails.User)3 UserDetails (org.springframework.security.core.userdetails.UserDetails)2 ObjectError (org.springframework.validation.ObjectError)2 Account (com.dappermoose.stsimplefinance.data.Account)1 LoginEvent (com.dappermoose.stsimplefinance.data.LoginEvent)1 ChangePwd (com.dappermoose.stsimplefinance.formbean.ChangePwd)1 BigDecimal (java.math.BigDecimal)1 ServletException (javax.servlet.ServletException)1 AbstractAuthenticationFailureEvent (org.springframework.security.authentication.event.AbstractAuthenticationFailureEvent)1 AuthenticationSuccessEvent (org.springframework.security.authentication.event.AuthenticationSuccessEvent)1 UsernameNotFoundException (org.springframework.security.core.userdetails.UsernameNotFoundException)1