// Path: src/main/java/com/github/vedenin/codingchallenge/persistence/UserEntity.java
// @Entity
// public class UserEntity implements UserDetails {
//     @Id
//     @GeneratedValue(strategy=GenerationType.AUTO)
//     private Long   id;
//     @NotNull
//     private String userName;
//     @NotNull
//     private String password;
//     private String firstName;
//     private String lastName;
//     @NotNull
//     private String email;
//     @NotNull
//     private String dataOfBirth;
//     private String zipCode;
//     private String city;
//     private String country;
//     private Boolean isAccountNonExpired = true;
//     private Boolean isAccountNonLocked = true;
//     private Boolean isCredentialsNonExpired = true;
//     private Boolean isEnabled = true;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getFirstName() {
//         return firstName;
//     }
// 
//     public void setFirstName(String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public String getLastName() {
//         return lastName;
//     }
// 
//     public void setLastName(String lastName) {
//         this.lastName = lastName;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getDataOfBirth() {
//         return dataOfBirth;
//     }
// 
//     public void setDataOfBirth(String dataOfBirth) {
//         this.dataOfBirth = dataOfBirth;
//     }
// 
//     public String getZipCode() {
//         return zipCode;
//     }
// 
//     public void setZipCode(String zipCode) {
//         this.zipCode = zipCode;
//     }
// 
//     public String getCity() {
//         return city;
//     }
// 
//     public void setCity(String city) {
//         this.city = city;
//     }
// 
//     public String getCountry() {
//         return country;
//     }
// 
//     public void setCountry(String country) {
//         this.country = country;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     @Override
//     public Collection<? extends GrantedAuthority> getAuthorities() {
//         return Collections.singletonList(new SimpleGrantedAuthority("USER"));
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     @Override
//     public String getUsername() {
//         return userName;
//     }
// 
//     @Override
//     public boolean isAccountNonExpired() {
//         return isAccountNonExpired;
//     }
// 
//     @Override
//     public boolean isAccountNonLocked() {
//         return isAccountNonLocked;
//     }
// 
//     @Override
//     public boolean isCredentialsNonExpired() {
//         return isCredentialsNonExpired;
//     }
// 
//     @Override
//     public boolean isEnabled() {
//         return isEnabled;
//     }
// 
//     public void setAccountNonExpired(Boolean accountNonExpired) {
//         isAccountNonExpired = accountNonExpired;
//     }
// 
//     public void setAccountNonLocked(Boolean accountNonLocked) {
//         isAccountNonLocked = accountNonLocked;
//     }
// 
//     public void setCredentialsNonExpired(Boolean credentialsNonExpired) {
//         isCredentialsNonExpired = credentialsNonExpired;
//     }
// 
//     public void setEnabled(Boolean enabled) {
//         isEnabled = enabled;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// }
// 
// Path: src/main/java/com/github/vedenin/codingchallenge/persistence/UserRepository.java
// public interface UserRepository extends CrudRepository<UserEntity, Long> {
//     public UserEntity findByUserName(String userName);
// }


import com.github.vedenin.codingchallenge.persistence.UserEntity;
import com.github.vedenin.codingchallenge.persistence.UserRepository;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import javax.inject.Inject;
package com.github.vedenin.codingchallenge.mvc.security;



/**
 * Created by slava on 11.02.17.
 */
@Service
public class ConverterUserDetailsServices implements UserDetailsService {
    @Inject
    UserRepository userRepository;

    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
// Path: src/main/java/com/github/vedenin/codingchallenge/persistence/UserEntity.java
// @Entity
// public class UserEntity implements UserDetails {
//     @Id
//     @GeneratedValue(strategy=GenerationType.AUTO)
//     private Long   id;
//     @NotNull
//     private String userName;
//     @NotNull
//     private String password;
//     private String firstName;
//     private String lastName;
//     @NotNull
//     private String email;
//     @NotNull
//     private String dataOfBirth;
//     private String zipCode;
//     private String city;
//     private String country;
//     private Boolean isAccountNonExpired = true;
//     private Boolean isAccountNonLocked = true;
//     private Boolean isCredentialsNonExpired = true;
//     private Boolean isEnabled = true;
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public String getFirstName() {
//         return firstName;
//     }
// 
//     public void setFirstName(String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public String getLastName() {
//         return lastName;
//     }
// 
//     public void setLastName(String lastName) {
//         this.lastName = lastName;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getDataOfBirth() {
//         return dataOfBirth;
//     }
// 
//     public void setDataOfBirth(String dataOfBirth) {
//         this.dataOfBirth = dataOfBirth;
//     }
// 
//     public String getZipCode() {
//         return zipCode;
//     }
// 
//     public void setZipCode(String zipCode) {
//         this.zipCode = zipCode;
//     }
// 
//     public String getCity() {
//         return city;
//     }
// 
//     public void setCity(String city) {
//         this.city = city;
//     }
// 
//     public String getCountry() {
//         return country;
//     }
// 
//     public void setCountry(String country) {
//         this.country = country;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     @Override
//     public Collection<? extends GrantedAuthority> getAuthorities() {
//         return Collections.singletonList(new SimpleGrantedAuthority("USER"));
//     }
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     @Override
//     public String getUsername() {
//         return userName;
//     }
// 
//     @Override
//     public boolean isAccountNonExpired() {
//         return isAccountNonExpired;
//     }
// 
//     @Override
//     public boolean isAccountNonLocked() {
//         return isAccountNonLocked;
//     }
// 
//     @Override
//     public boolean isCredentialsNonExpired() {
//         return isCredentialsNonExpired;
//     }
// 
//     @Override
//     public boolean isEnabled() {
//         return isEnabled;
//     }
// 
//     public void setAccountNonExpired(Boolean accountNonExpired) {
//         isAccountNonExpired = accountNonExpired;
//     }
// 
//     public void setAccountNonLocked(Boolean accountNonLocked) {
//         isAccountNonLocked = accountNonLocked;
//     }
// 
//     public void setCredentialsNonExpired(Boolean credentialsNonExpired) {
//         isCredentialsNonExpired = credentialsNonExpired;
//     }
// 
//     public void setEnabled(Boolean enabled) {
//         isEnabled = enabled;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// }
// 
// Path: src/main/java/com/github/vedenin/codingchallenge/persistence/UserRepository.java
// public interface UserRepository extends CrudRepository<UserEntity, Long> {
//     public UserEntity findByUserName(String userName);
// }


// Path: src/main/java/com/github/vedenin/codingchallenge/mvc/security/ConverterUserDetailsServices.java
import com.github.vedenin.codingchallenge.persistence.UserEntity;
import com.github.vedenin.codingchallenge.persistence.UserRepository;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import javax.inject.Inject;

package com.github.vedenin.codingchallenge.mvc.security;



/**
 * Created by slava on 11.02.17.
 */
@Service
public class ConverterUserDetailsServices implements UserDetailsService {
    @Inject
    UserRepository userRepository;

    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        UserEntity userEntity = userRepository.findByUserName(s);