package com.mx.cneeds.server.anthorization.service;

import com.mx.cneeds.server.entity.SysUserEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;

@Component
public class MyUserDetailsService implements UserDetailsService {

	@Autowired
	private PasswordEncoder passwordEncoder;

	@Autowired
	private SysUserService sysUserService;
	
	/** (non-Javadoc)
	 * @see UserDetailsService#loadUserByUsername(String)
	 */
	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

		SysUserEntity sysUserEntity = sysUserService.queryUserByUsername(username);
		if (sysUserEntity == null){
			return null;
		}
		return new User(username, sysUserEntity.getPassword(),
				AuthorityUtils.commaSeparatedStringToAuthorityList("ROLE_admin"));
	}

}