![JAR search and dependency download from the Maven repository](/logo.png)
com.eshore.uas.system.DefaultUserProvider Maven / Gradle / Ivy
package com.eshore.uas.system;
import javax.sql.DataSource;
import com.eshore.tools.Alias;
import com.eshore.uas.extensions.Glue;
import com.eshore.uas.jdbc.impl.SQLQuery;
import com.eshore.uas.server.api.User;
import com.eshore.uas.server.api.UserProvider;
/**
*
* @author eshore
*
*/
public class DefaultUserProvider implements UserProvider {
private String userDomain;
public DefaultUserProvider() {
}
DataSource ds;
public DataSource getDs(AuthSource as) {
if(ds==null) {
ds=Glue.getDataSourceFactory().getDataSource(as);
}
return ds;
}
private AuthSource as;
public DefaultUserProvider(AuthSource as) {
this.as=as;
this.userDomain=as.getUserDomain();
}
private SQLQuery db() {
SQLQuery query= new SQLQuery(){
public DataSource getDataSource() {
return getDs(as);
}
};
return query;
}
@Override
public User findByAccount(String account) {
User u =Glue.getUserCache().byAccount(account+"@"+userDomain);
if(u!=null)return u;
u=findUser(as.getSqlByAccount(),account);
if(u!=null)Glue.getUserCache().cache(u);
return u;
}
private User findUser(String sql,String param) {
if(sql==null||param==null)return null;
User u =(User) db().query(sql)
.alias(Alias.getAlias(User.class))
.clazz(User.class)
.param(param)
.findOne();
if(u!=null) {
u.setDomain(userDomain);
}
return u;
}
@Override
public User findByID(String id) {
User u =Glue.getUserCache().byId(id+"@"+userDomain);
if(u!=null)return u;
u= findUser(as.getSqlById(),id);
if(u!=null)Glue.getUserCache().cache(u);
return u;
}
@Override
public User findByEmail(String mail) {
User u =Glue.getUserCache().byMail(mail+"@"+userDomain);
if(u!=null)return u;
u= findUser(as.getSqlByEmail(),mail);
if(u!=null)Glue.getUserCache().cache(u);
return u;
}
@Override
public User findByPhone(String phone) {
User u =Glue.getUserCache().byPhone(phone+"@"+userDomain);
if(u!=null)return u;
u= findUser(as.getSqlByPhone(),phone);
if(u!=null)Glue.getUserCache().cache(u);
return u;
}
/**
*
*/
@Override
public User findByAccount(String account, String domain) {
return findByAccount(account);
}
@Override
public User findByID(String id, String domain) {
return findByID(id);
}
@Override
public User findByEmail(String mail, String domain) {
return findByEmail(mail);
}
@Override
public User findByPhone(String phone, String domain) {
return findByPhone(phone);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy