public String viewUpdateAccount(HttpServletRequest request, Model model, UpdateAccountForm form) {
   Customer customer = CustomerState.getCustomer();
   form.setEmailAddress(customer.getEmailAddress());
   form.setFirstName(customer.getFirstName());
   form.setLastName(customer.getLastName());
   return getUpdateAccountView();
 }
コード例 #2
0
  public void validate(Customer customer, String password, String passwordConfirm, Errors errors) {
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "password.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(
        errors, "passwordConfirm", "passwordConfirm.required");
    errors.pushNestedPath("customer");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "firstName", "firstName.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "lastName", "lastName.required");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "emailAddress", "emailAddress.required");
    errors.popNestedPath();

    if (errors.hasErrors()) {
      if (!passwordConfirm.equals(password)) {
        errors.rejectValue("passwordConfirm", "invalid");
      }
      if (!customer.getFirstName().matches(validNameRegex)) {
        errors.rejectValue("firstName", "firstName.invalid", null, null);
      }

      if (!customer.getLastName().matches(validNameRegex)) {
        errors.rejectValue("lastName", "lastName.invalid", null, null);
      }

      if (!customer.getPassword().matches(validPasswordRegex)) {
        errors.rejectValue("password", "password.invalid", null, null);
      }

      if (!password.equals(passwordConfirm)) {
        errors.rejectValue("password", "passwordConfirm.invalid", null, null);
      }

      if (!GenericValidator.isEmail(customer.getEmailAddress())) {
        errors.rejectValue("emailAddress", "emailAddress.invalid", null, null);
      }
    }
  }
コード例 #3
0
 @Test(
     groups = {"readCustomer"},
     dependsOnGroups = {"createCustomers"})
 public void readCustomersById() {
   for (Long userId : userIds) {
     Customer customer = customerService.readCustomerById(userId);
     assert customer.getId() == userId;
   }
 }
 public void sendConfirmationEmail(String orderNumber) {
   Order order = orderService.findOrderByOrderNumber(orderNumber);
   Customer customer = customerDao.readCustomerByEmail(order.getEmailAddress());
   if (customer != null) {
     HashMap<String, Object> vars = new HashMap<String, Object>();
     vars.put("customer", customer);
     vars.put("orderNumber", orderNumber);
     vars.put("order", order);
     emailService.sendTemplateEmail(
         customer.getEmailAddress(), getOrderConfirmationEmailInfo(), vars);
   }
 }
コード例 #5
0
 @Test(
     groups = {"changeCustomerPassword"},
     dependsOnGroups = {"readCustomer"})
 @Transactional
 @Rollback(false)
 public void changeCustomerPasswords() {
   for (String userName : userNames) {
     Customer customer = customerService.readCustomerByUsername(userName);
     customer.setPassword(customer.getPassword() + "-Changed");
     customerService.saveCustomer(customer);
   }
 }
コード例 #6
0
 /**
  * Implementors can subclass to change how anonymous customers are created.
  *
  * @param request
  * @return
  */
 public Customer resolveAnonymousCustomer(WebRequest request) {
   Customer customer;
   customer =
       (Customer)
           request.getAttribute(
               getAnonymousCustomerAttributeName(), WebRequest.SCOPE_GLOBAL_SESSION);
   if (customer == null) {
     customer = customerService.createNewCustomer();
     customer.setAnonymous(true);
     request.setAttribute(
         getAnonymousCustomerAttributeName(), customer, WebRequest.SCOPE_GLOBAL_SESSION);
   }
   return customer;
 }
 public String processUpdateAccount(
     HttpServletRequest request,
     Model model,
     UpdateAccountForm form,
     BindingResult result,
     RedirectAttributes redirectAttributes)
     throws ServiceException {
   updateAccountValidator.validate(form, result);
   if (result.hasErrors()) {
     return getUpdateAccountView();
   }
   Customer customer = CustomerState.getCustomer();
   customer.setEmailAddress(form.getEmailAddress());
   customer.setFirstName(form.getFirstName());
   customer.setLastName(form.getLastName());
   customerService.saveCustomer(customer);
   redirectAttributes.addFlashAttribute("successMessage", getAccountUpdatedMessage());
   return getAccountRedirectView();
 }
コード例 #8
0
 @Test(
     groups = "createCustomers",
     dependsOnGroups = "createCustomerIdGeneration",
     dataProvider = "setupCustomers",
     dataProviderClass = CustomerDataProvider.class)
 @Rollback(false)
 public void createCustomer(Customer customerInfo) {
   Customer customer = customerService.createCustomerFromId(null);
   customer.setPassword(customerInfo.getPassword());
   customer.setUsername(customerInfo.getUsername());
   Long customerId = customer.getId();
   assert customerId != null;
   customer = customerService.saveCustomer(customer);
   assert customer.getId() == customerId;
   userIds.add(customer.getId());
   userNames.add(customer.getUsername());
 }
コード例 #9
0
 @Override
 public List<Order> findOrdersForCustomer(Customer customer) {
   return orderDao.readOrdersForCustomer(customer.getId());
 }
コード例 #10
0
 protected Customer createNamedCustomer() {
   Customer customer = customerService.createCustomerFromId(null);
   customer.setUsername(String.valueOf(customer.getId()));
   return customer;
 }
コード例 #11
0
  @Override
  public void process(WebRequest request) {
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    Customer customer = null;
    if ((authentication != null) && !(authentication instanceof AnonymousAuthenticationToken)) {
      String userName = authentication.getName();
      customer =
          (Customer) request.getAttribute(customerRequestAttributeName, WebRequest.SCOPE_REQUEST);
      if (userName != null && (customer == null || !userName.equals(customer.getUsername()))) {
        // can only get here if the authenticated user does not match the user in session
        customer = customerService.readCustomerByUsername(userName);
        if (logger.isDebugEnabled() && customer != null) {
          logger.debug("Customer found by username " + userName);
        }
      }
      if (customer != null) {
        ApplicationEvent lastPublishedEvent =
            (ApplicationEvent)
                request.getAttribute(
                    LAST_PUBLISHED_EVENT_SESSION_ATTRIBUTED_NAME, WebRequest.SCOPE_REQUEST);
        if (authentication instanceof RememberMeAuthenticationToken) {
          // set transient property of customer
          customer.setCookied(true);
          boolean publishRememberMeEvent = true;
          if (lastPublishedEvent != null
              && lastPublishedEvent instanceof CustomerAuthenticatedFromCookieEvent) {
            CustomerAuthenticatedFromCookieEvent cookieEvent =
                (CustomerAuthenticatedFromCookieEvent) lastPublishedEvent;
            if (userName.equals(cookieEvent.getCustomer().getUsername())) {
              publishRememberMeEvent = false;
            }
          }
          if (publishRememberMeEvent) {
            CustomerAuthenticatedFromCookieEvent cookieEvent =
                new CustomerAuthenticatedFromCookieEvent(customer, this.getClass().getName());
            eventPublisher.publishEvent(cookieEvent);
            request.setAttribute(
                LAST_PUBLISHED_EVENT_SESSION_ATTRIBUTED_NAME,
                cookieEvent,
                WebRequest.SCOPE_REQUEST);
          }
        } else if (authentication instanceof UsernamePasswordAuthenticationToken) {
          customer.setLoggedIn(true);
          boolean publishLoggedInEvent = true;
          if (lastPublishedEvent != null && lastPublishedEvent instanceof CustomerLoggedInEvent) {
            CustomerLoggedInEvent loggedInEvent = (CustomerLoggedInEvent) lastPublishedEvent;
            if (userName.equals(loggedInEvent.getCustomer().getUsername())) {
              publishLoggedInEvent = false;
            }
          }
          if (publishLoggedInEvent) {
            CustomerLoggedInEvent loggedInEvent =
                new CustomerLoggedInEvent(customer, this.getClass().getName());
            eventPublisher.publishEvent(loggedInEvent);
            request.setAttribute(
                LAST_PUBLISHED_EVENT_SESSION_ATTRIBUTED_NAME,
                loggedInEvent,
                WebRequest.SCOPE_REQUEST);
          }
        } else {
          customer = resolveAuthenticatedCustomer(authentication);
        }
      }
    }

    if (customer == null) {
      // This is an anonymous customer.
      // TODO: Handle a custom cookie (different than remember me) that is just for anonymous users.
      // This can be used to remember their cart from a previous visit.
      // Cookie logic probably needs to be configurable - with TCS as the exception.

      customer = resolveAnonymousCustomer(request);
    }
    request.setAttribute(customerRequestAttributeName, customer, WebRequest.SCOPE_REQUEST);

    // Setup customer for content rule processing
    Map<String, Object> ruleMap =
        (Map<String, Object>) request.getAttribute(BLC_RULE_MAP_PARAM, WebRequest.SCOPE_REQUEST);
    if (ruleMap == null) {
      ruleMap = new HashMap<String, Object>();
    }
    ruleMap.put("customer", customer);
    request.setAttribute(BLC_RULE_MAP_PARAM, ruleMap, WebRequest.SCOPE_REQUEST);
  }