// Path: lolibox-server/src/main/java/io/loli/box/AdminProperties.java
// @ConfigurationProperties("admin")
// @Component
// public class AdminProperties {
//     @NotNull
//     private String email;
// 
//     private boolean anonymous = false;
// 
//     private boolean signupInvitation = true;
// 
//     private Integer invitationLimitDays = 7;
// 
//     private String imgHost;
//     private String cdnHost;
// 
//     private String httpsHost;
// 
//     public String getHttpsHost() {
//         return httpsHost;
//     }
// 
//     public void setHttpsHost(String httpsHost) {
//         this.httpsHost = httpsHost;
//     }
// 
//     public boolean isAnonymous() {
//         return anonymous;
//     }
// 
//     public void setAnonymous(boolean anonymous) {
//         this.anonymous = anonymous;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
// 
//     public boolean isSignupInvitation() {
//         return signupInvitation;
//     }
// 
//     public void setSignupInvitation(boolean signupInvitation) {
//         this.signupInvitation = signupInvitation;
//     }
// 
//     public Integer getInvitationLimitDays() {
//         return invitationLimitDays;
//     }
// 
//     public void setInvitationLimitDays(Integer invitationLimitDays) {
//         this.invitationLimitDays = invitationLimitDays;
//     }
// 
//     public String getCdnHost() {
//         return cdnHost;
//     }
// 
//     public void setCdnHost(String cdnHost) {
//         this.cdnHost = cdnHost;
//     }
// 
//     public String getImgHost() {
//         return imgHost;
//     }
// 
//     public void setImgHost(String imgHost) {
//         this.imgHost = imgHost;
//     }
// }
// 
// Path: lolibox-server/src/main/java/io/loli/box/dao/UserRepository.java
// public interface UserRepository extends JpaRepository<User, Long> {
// 
//     public User findByEmail(String email);
// 
//     public User findByUserName(String userName);
// 
//     User findByEmailOrUserName(String email, String name);
// }
// 
// Path: lolibox-server/src/main/java/io/loli/box/entity/Role.java
// public enum Role {
//     ROLE_USER("ROLE_USER"), ADMIN("ROLE_ADMIN");
// 
//     private String name;
// 
// 
//     Role(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public String toString() {
//         return name;
//     }
// }
// 
// Path: lolibox-server/src/main/java/io/loli/box/entity/User.java
// @Entity
// @Table(name = "user_accounts")
// public class User {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private Long id;
// 
//     @Column(name = "email", length = 100, nullable = false, unique = true)
//     private String email;
// 
//     @Column(name = "user_name", length = 100, nullable = false,unique = true)
//     private String userName;
// 
//     @Column(name = "password", length = 255)
//     private String password;
// 
//     @Enumerated(EnumType.STRING)
//     @Column(name = "role", length = 20, nullable = false)
//     private Role role;
// 
//     @Enumerated(EnumType.STRING)
//     @Column(name = "sign_in_provider", length = 20)
//     private SocialMediaService signInProvider;
// 
//     @Column(name = "create_date")
//     private Date createDate = new Date();
// 
//     public Date getCreateDate() {
//         return createDate;
//     }
// 
//     public void setCreateDate(Date createDate) {
//         this.createDate = createDate;
//     }
// 
//     public User() {
// 
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public Role getRole() {
//         return role;
//     }
// 
//     public void setRole(Role role) {
//         this.role = role;
//     }
// 
//     public SocialMediaService getSignInProvider() {
//         return signInProvider;
//     }
// 
//     public void setSignInProvider(SocialMediaService signInProvider) {
//         this.signInProvider = signInProvider;
//     }
// }


import io.loli.box.AdminProperties;
import io.loli.box.dao.UserRepository;
import io.loli.box.entity.Role;
import io.loli.box.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
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.Component;
package io.loli.box.social;


@Component
public class RepositoryUserDetailsService implements UserDetailsService {

// Path: lolibox-server/src/main/java/io/loli/box/AdminProperties.java
// @ConfigurationProperties("admin")
// @Component
// public class AdminProperties {
//     @NotNull
//     private String email;
// 
//     private boolean anonymous = false;
// 
//     private boolean signupInvitation = true;
// 
//     private Integer invitationLimitDays = 7;
// 
//     private String imgHost;
//     private String cdnHost;
// 
//     private String httpsHost;
// 
//     public String getHttpsHost() {
//         return httpsHost;
//     }
// 
//     public void setHttpsHost(String httpsHost) {
//         this.httpsHost = httpsHost;
//     }
// 
//     public boolean isAnonymous() {
//         return anonymous;
//     }
// 
//     public void setAnonymous(boolean anonymous) {
//         this.anonymous = anonymous;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
// 
//     public boolean isSignupInvitation() {
//         return signupInvitation;
//     }
// 
//     public void setSignupInvitation(boolean signupInvitation) {
//         this.signupInvitation = signupInvitation;
//     }
// 
//     public Integer getInvitationLimitDays() {
//         return invitationLimitDays;
//     }
// 
//     public void setInvitationLimitDays(Integer invitationLimitDays) {
//         this.invitationLimitDays = invitationLimitDays;
//     }
// 
//     public String getCdnHost() {
//         return cdnHost;
//     }
// 
//     public void setCdnHost(String cdnHost) {
//         this.cdnHost = cdnHost;
//     }
// 
//     public String getImgHost() {
//         return imgHost;
//     }
// 
//     public void setImgHost(String imgHost) {
//         this.imgHost = imgHost;
//     }
// }
// 
// Path: lolibox-server/src/main/java/io/loli/box/dao/UserRepository.java
// public interface UserRepository extends JpaRepository<User, Long> {
// 
//     public User findByEmail(String email);
// 
//     public User findByUserName(String userName);
// 
//     User findByEmailOrUserName(String email, String name);
// }
// 
// Path: lolibox-server/src/main/java/io/loli/box/entity/Role.java
// public enum Role {
//     ROLE_USER("ROLE_USER"), ADMIN("ROLE_ADMIN");
// 
//     private String name;
// 
// 
//     Role(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public String toString() {
//         return name;
//     }
// }
// 
// Path: lolibox-server/src/main/java/io/loli/box/entity/User.java
// @Entity
// @Table(name = "user_accounts")
// public class User {
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     private Long id;
// 
//     @Column(name = "email", length = 100, nullable = false, unique = true)
//     private String email;
// 
//     @Column(name = "user_name", length = 100, nullable = false,unique = true)
//     private String userName;
// 
//     @Column(name = "password", length = 255)
//     private String password;
// 
//     @Enumerated(EnumType.STRING)
//     @Column(name = "role", length = 20, nullable = false)
//     private Role role;
// 
//     @Enumerated(EnumType.STRING)
//     @Column(name = "sign_in_provider", length = 20)
//     private SocialMediaService signInProvider;
// 
//     @Column(name = "create_date")
//     private Date createDate = new Date();
// 
//     public Date getCreateDate() {
//         return createDate;
//     }
// 
//     public void setCreateDate(Date createDate) {
//         this.createDate = createDate;
//     }
// 
//     public User() {
// 
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     public Long getId() {
//         return id;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
// 
//     public String getPassword() {
//         return password;
//     }
// 
//     public void setPassword(String password) {
//         this.password = password;
//     }
// 
//     public Role getRole() {
//         return role;
//     }
// 
//     public void setRole(Role role) {
//         this.role = role;
//     }
// 
//     public SocialMediaService getSignInProvider() {
//         return signInProvider;
//     }
// 
//     public void setSignInProvider(SocialMediaService signInProvider) {
//         this.signInProvider = signInProvider;
//     }
// }


// Path: lolibox-server/src/main/java/io/loli/box/social/RepositoryUserDetailsService.java
import io.loli.box.AdminProperties;
import io.loli.box.dao.UserRepository;
import io.loli.box.entity.Role;
import io.loli.box.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
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.Component;

package io.loli.box.social;


@Component
public class RepositoryUserDetailsService implements UserDetailsService {

    private UserRepository repository;