package com.sissi.ucenter.access.impl;
import com.mongodb.BasicDBObjectBuilder;
import com.mongodb.DBObject;
import com.sissi.config.Dictionary;
import com.sissi.config.MongoConfig;
import com.sissi.config.impl.MongoUtils;
import com.sissi.ucenter.access.AuthAccessor;
/**
* 索引策略: {"username":1,"activate":1}
* @author kim 2013-11-6
*/
public class MongoAuthAccessor implements AuthAccessor {
private final DBObject filter = BasicDBObjectBuilder.start(MongoConfig.FIELD_PASSWORD, 1).get();
private final MongoConfig config;
public MongoAuthAccessor(MongoConfig config) {
super();
this.config = config;
}
/*
* {"username":Xxx},{"password":1}
*
* @see com.sissi.ucenter.user.access.AuthAccessor#access(java.lang.String)
*/
@Override
public String access(String username, String request) {
return MongoUtils.asString(this.config.collection().findOne(BasicDBObjectBuilder.start().add(Dictionary.FIELD_USERNAME, username).add(Dictionary.FIELD_ACTIVATE, true).get(), this.filter), Dictionary.FIELD_PASSWORD);
}
}