【发布时间】:2014-06-05 06:34:45
【问题描述】:
我正在尝试注册用户并允许他使用用户名和密码登录。我的数据存储实体“Racer”包含名称、用户名、密码、年龄、BikeModel、城市。密钥由应用程序生成。
我想验证用户。我使用带有 addFilter() 的查询来获取特定用户的全部详细信息。我对从数据存储中的实体获取特定用户的特定属性感到震惊,例如,来自“Racer”的特定用户的密码和用户名。
在网络上,无论我得到什么例子,它都在使用 PersistentManager。我不想用它。除了筛选和排序之外,我没有找到任何查询来获取详细信息。请建议我如何进行。
小服务程序:
public class StoreInDataStore extends HttpServlet {
@SuppressWarnings("deprecation")
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException {
//Getting SignUp form values
String name=req.getParameter("name1");
String uname=req.getParameter("uname1");
String pswd=req.getParameter("pswd1");
String age=req.getParameter("age");
String city=req.getParameter("city");
String bike=req.getParameter("bike");
//Getting login form values
String lname=req.getParameter("name");
String lpswd=req.getParameter("pswd");
//Creating dataStore
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
//Creating entity
Entity e=new Entity("Racer");
//Entering details in racer
e.setProperty("Name", name);
e.setProperty("UserName", uname);
e.setProperty("Password", pswd);
e.setProperty("Age", age);
e.setProperty("City", city);
e.setProperty("Bike Model", bike);
//Storing in DataStore
ds.put(e);
//Getting entire details
Query q=new Query("Racer");
q.setFilter(FilterOperator.EQUAL.of("UserName", uname));/* UserName takes only the currently entered value(uname). Doesnot fetch from dataStore */
PreparedQuery pq=ds.prepare(q);
List<Entity> result = ds.prepare(q).asList(FetchOptions.Builder.withDefaults());
System.out.println(result);
}
【问题讨论】:
-
我希望您不要将密码存储为字符串。您应该加密和加盐密码。
-
是的,我没有加密。
标签: java google-app-engine validation google-cloud-datastore