Package ua.com.jpy.services.customer

Source Code of ua.com.jpy.services.customer.CustomerService

package ua.com.jpy.services.customer;

import java.util.Collection;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.encoding.PasswordEncoder;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;

import ua.com.jpy.entity.IEntity;
import ua.com.jpy.entity.customer.Customer;
import ua.com.jpy.entity.customer.dao.ICustomerDao;
import ua.com.jpy.services.basic.AJpyBasicService;

/**
* @author LSD25
*
*/
@Service
public class CustomerService extends AJpyBasicService implements ICustomerService {
 
  private static final Log log = LogFactory.getLog(CustomerService.class);
 
  @Autowired
  private ICustomerDao customerDao;
 
  @Autowired
  private PasswordEncoder passwordEncoder;

  @Override
  public IEntity getOrCreate(IEntity entity, ObjectId id) {
    if(entity != null && id == null) {
      Customer customer = (Customer) entity;
      String password = customer.getPassword();
      customer.setPassword(passwordEncoder.encodePassword(password, null));
      entity = customer;
    }
    return customerDao.getOrCreate(entity, id);
  }
 
  @Override
  public boolean delete(IEntity entityFoDelete, ObjectId id) {
    return customerDao.delete(entityFoDelete, id);
  }
 
  @Override
  public boolean update(IEntity entityForUpdate, ObjectId id) {
    return customerDao.update(entityForUpdate, id);
  }

  @Override
  public Customer find(String login) {
    return customerDao.find(login);
  }
 
  @Override
  public Customer getCurrentCustomer() {
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    if (authentication != null) {
      Object principal = authentication.getPrincipal();
      if (principal instanceof UserDetails) {
        Customer customer = null;
        try {
          User user = (User) principal;
          customer = find(user.getUsername());
          log.info("Customer found in cookie!!!");
        } catch(Exception exc) {
          log.error("Cannot cast customer:", exc);
        }
        if(customer == null) {
          log.error("Customer is null");
        }
        return customer;
      }
    }
    log.info("Customer can not found in cookie!!!");
    return null;
  }

  @Override
  public Collection<? extends GrantedAuthority> getCustomerRoles() {
    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    Collection<? extends GrantedAuthority> roles = authentication.getAuthorities();
    return roles;
  }

  @Override
  public String getStringCustomerRoles() {
    String customerRoles = "";
    Collection<? extends GrantedAuthority> roles = getCustomerRoles();
    int i = 0;
    if(roles != null) {
      for(GrantedAuthority role : roles) {
        if(i != roles.size() - 1) {
          customerRoles += role.getAuthority() + " ";
        } else {
          customerRoles += role.getAuthority();
        }
      }
    }
    return customerRoles;
  }

}
TOP

Related Classes of ua.com.jpy.services.customer.CustomerService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.