补一个
2016-03-02 23:21
274 查看
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="org.tarena.note.dao.NoteBookDao">
<select id="findByUserId" parameterType="string" resultType="org.tarena.note.entity.NoteBook">
select * from cn_notebook where cn_user_id=#{userId}
</select>
<select id="findByNameAndUserId" parameterType="org.tarena.note.entity.NoteBook" resultType="org.tarena.note.entity.NoteBook">
select * from cn_noteBook where cn_user_id=#{cn_user_id} and cn_notebook_name=#{cn_notebook_name}
</select>
</mapper>
package org.tarena.note.service;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.entity.User;
public interface UserService {
public NoteResult checkLogin(String name, String password);
public NoteResult checkLogin(String author);
public NoteResult registUser(User user);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="org.tarena.note.dao.UserDao">
<select id="findByName" parameterType="string"
resultType="org.tarena.note.entity.User">
select * from cn_user where cn_user_name=#{name}
</select>
<insert id="save" parameterType="org.tarena.note.entity.User">
insert into cn_user(cn_user_id,cn_user_name,cn_user_password,cn_user_token,cn_user_desc)
values(#{cn_user_id},#{cn_user_name},#{cn_user_password},#{cn_user_token},#{cn_user_desc})
</insert>
<update id="updateToken" parameterType="map">
update cn_user set cn_user_token=#{userToken}
where cn_user_id=#{userId}
</update>
</mapper>
package org.tarena.note.dao;
import java.util.Map;
import org.tarena.note.entity.User;
public interface UserDao {
public User findByName(String name);
public int save(User user);
public int updateToken(Map<String,Object> para);
}
package org.tarena.note.service;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.entity.User;
public interface UserService {
public NoteResult checkLogin(String name, String password);
public NoteResult checkLogin(String author);
public NoteResult registUser(User user);
}
package org.tarena.note.service.impl;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.tarena.note.dao.UserDao;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.entity.User;
import org.tarena.note.exception.NoteException;
import org.tarena.note.service.UserService;
import org.tarena.note.util.NoteUtil;
import com.sun.org.apache.xml.internal.security.utils.Base64;
@Service("userService")
public class UserServiceImpl implements UserService, Serializable {
@Autowired
private UserDao userDao;
public NoteResult checkLogin(String name, String password) {
NoteResult result = new NoteResult();
User user = userDao.findByName(name);
if(user == null){
result.setStatus(1);
result.setMsg("用户名不存在!");
}else{
String md5_pwd = NoteUtil.md5(password);
//System.out.println(md5_pwd);
//System.out.println(user.getCn_user_password());
if(user.getCn_user_password().equals(md5_pwd)){
result.setStatus(0);
result.setMsg("用户名和密码正确");
//传出userId和用户token令牌
String token = NoteUtil.createToken();
Map<String,Object> data = new HashMap<String, Object>();
data.put("userToken",token);
data.put("userId",user.getCn_user_id());
result.setData(data);
//将令牌号更新到数据表cn_user
userDao.updateToken(data);
}else{
result.setStatus(2);
result.setMsg("密码不正确");
}
}
return result;
}
public NoteResult checkLogin(String author){
try{
//解析身份信息,获取"Basic 加密消息"部分的消息
String base64_msg = author.split(" ")[1];
//System.out.println("密文:"+base64_msg);
//将"加密消息"还原成明文"用户名:密码"
byte[] output =
Base64.decode(base64_msg);
String msg = new String(output,"UTF-8");
//System.out.println("明文:"+msg);
//切割"用户名:密码"获取用户名和密码信息
String name = msg.split(":")[0];
String password = msg.split(":")[1];
//System.out.println("用户名:"+name);
//System.out.println("密码:"+password);
//检查用户名和密码正确性
NoteResult result = checkLogin(
name, password);
return result;
}catch(Exception ex){
throw new NoteException("身份验证错误");
}
}
public NoteResult registUser(User user) {
//传递用户名和密码,昵称
//检测用户名是否重复
NoteResult result = new NoteResult();
User u = userDao.findByName(user.getCn_user_name());
if(u != null){
result.setStatus(1);
result.setMsg("用户名被占用");
return result;
}
//设置 ID,密码加密
String userId = NoteUtil.createId();
user.setCn_user_id(userId);
String md5_pwd = NoteUtil.md5(user.getCn_user_password());
user.setCn_user_password(md5_pwd);
userDao.save(user);
result.setStatus(0);
result.setMsg("注册成功");
return result;
}
}
package org.tarena.note.web.controller.user;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.service.UserService;
@Controller
@RequestMapping("/user")
public class UserLoginController {
@Autowired
private UserService userService;
//对应/user/login.do
@RequestMapping("/login")
@ResponseBody //该注解返回json结果: {:}
public NoteResult execute(HttpServletRequest request){
String author = request.getHeader("Authorization");
NoteResult result = userService.checkLogin(author);
return result;
}
}
package org.tarena.note.web.controller.user;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.tarena.note.entity.NoteResult;
import com.fasterxml.jackson.dat
8fe7
abind.ObjectMapper;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class UserLoginControllerTest {
//注入要测试的controller
@Autowired
private UserLoginController controller;
//发送http测试请求
private MockMvc mock;
@Before
public void init(){
mock = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void test1() throws Exception{
RequestBuilder request = MockMvcRequestBuilders.post("/user/regist.do")
.param("cn_user_name", "demo")
.param("cn_user_password", "123456");
//发送一个http请求
MvcResult result = mock.perform(request).andDo(MockMvcResultHandlers.print()).andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
//提取json字符串
String jsonStr = result.getResponse().getContentAsString();
System.out.println(jsonStr);
//使用断言判断
ObjectMapper mapper = new ObjectMapper();
NoteResult noteResult = mapper.readValue(jsonStr,NoteResult.class);
Assert.assertEquals(1, noteResult.getStatus());
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="org.tarena.note.dao.NoteBookDao">
<select id="findByUserId" parameterType="string" resultType="org.tarena.note.entity.NoteBook">
select * from cn_notebook where cn_user_id=#{userId}
</select>
<select id="findByNameAndUserId" parameterType="org.tarena.note.entity.NoteBook" resultType="org.tarena.note.entity.NoteBook">
select * from cn_noteBook where cn_user_id=#{cn_user_id} and cn_notebook_name=#{cn_notebook_name}
</select>
</mapper>
package org.tarena.note.service;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.entity.User;
public interface UserService {
public NoteResult checkLogin(String name, String password);
public NoteResult checkLogin(String author);
public NoteResult registUser(User user);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="org.tarena.note.dao.UserDao">
<select id="findByName" parameterType="string"
resultType="org.tarena.note.entity.User">
select * from cn_user where cn_user_name=#{name}
</select>
<insert id="save" parameterType="org.tarena.note.entity.User">
insert into cn_user(cn_user_id,cn_user_name,cn_user_password,cn_user_token,cn_user_desc)
values(#{cn_user_id},#{cn_user_name},#{cn_user_password},#{cn_user_token},#{cn_user_desc})
</insert>
<update id="updateToken" parameterType="map">
update cn_user set cn_user_token=#{userToken}
where cn_user_id=#{userId}
</update>
</mapper>
package org.tarena.note.dao;
import java.util.Map;
import org.tarena.note.entity.User;
public interface UserDao {
public User findByName(String name);
public int save(User user);
public int updateToken(Map<String,Object> para);
}
package org.tarena.note.service;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.entity.User;
public interface UserService {
public NoteResult checkLogin(String name, String password);
public NoteResult checkLogin(String author);
public NoteResult registUser(User user);
}
package org.tarena.note.service.impl;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.tarena.note.dao.UserDao;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.entity.User;
import org.tarena.note.exception.NoteException;
import org.tarena.note.service.UserService;
import org.tarena.note.util.NoteUtil;
import com.sun.org.apache.xml.internal.security.utils.Base64;
@Service("userService")
public class UserServiceImpl implements UserService, Serializable {
@Autowired
private UserDao userDao;
public NoteResult checkLogin(String name, String password) {
NoteResult result = new NoteResult();
User user = userDao.findByName(name);
if(user == null){
result.setStatus(1);
result.setMsg("用户名不存在!");
}else{
String md5_pwd = NoteUtil.md5(password);
//System.out.println(md5_pwd);
//System.out.println(user.getCn_user_password());
if(user.getCn_user_password().equals(md5_pwd)){
result.setStatus(0);
result.setMsg("用户名和密码正确");
//传出userId和用户token令牌
String token = NoteUtil.createToken();
Map<String,Object> data = new HashMap<String, Object>();
data.put("userToken",token);
data.put("userId",user.getCn_user_id());
result.setData(data);
//将令牌号更新到数据表cn_user
userDao.updateToken(data);
}else{
result.setStatus(2);
result.setMsg("密码不正确");
}
}
return result;
}
public NoteResult checkLogin(String author){
try{
//解析身份信息,获取"Basic 加密消息"部分的消息
String base64_msg = author.split(" ")[1];
//System.out.println("密文:"+base64_msg);
//将"加密消息"还原成明文"用户名:密码"
byte[] output =
Base64.decode(base64_msg);
String msg = new String(output,"UTF-8");
//System.out.println("明文:"+msg);
//切割"用户名:密码"获取用户名和密码信息
String name = msg.split(":")[0];
String password = msg.split(":")[1];
//System.out.println("用户名:"+name);
//System.out.println("密码:"+password);
//检查用户名和密码正确性
NoteResult result = checkLogin(
name, password);
return result;
}catch(Exception ex){
throw new NoteException("身份验证错误");
}
}
public NoteResult registUser(User user) {
//传递用户名和密码,昵称
//检测用户名是否重复
NoteResult result = new NoteResult();
User u = userDao.findByName(user.getCn_user_name());
if(u != null){
result.setStatus(1);
result.setMsg("用户名被占用");
return result;
}
//设置 ID,密码加密
String userId = NoteUtil.createId();
user.setCn_user_id(userId);
String md5_pwd = NoteUtil.md5(user.getCn_user_password());
user.setCn_user_password(md5_pwd);
userDao.save(user);
result.setStatus(0);
result.setMsg("注册成功");
return result;
}
}
package org.tarena.note.web.controller.user;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.tarena.note.entity.NoteResult;
import org.tarena.note.service.UserService;
@Controller
@RequestMapping("/user")
public class UserLoginController {
@Autowired
private UserService userService;
//对应/user/login.do
@RequestMapping("/login")
@ResponseBody //该注解返回json结果: {:}
public NoteResult execute(HttpServletRequest request){
String author = request.getHeader("Authorization");
NoteResult result = userService.checkLogin(author);
return result;
}
}
package org.tarena.note.web.controller.user;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.tarena.note.entity.NoteResult;
import com.fasterxml.jackson.dat
8fe7
abind.ObjectMapper;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class UserLoginControllerTest {
//注入要测试的controller
@Autowired
private UserLoginController controller;
//发送http测试请求
private MockMvc mock;
@Before
public void init(){
mock = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void test1() throws Exception{
RequestBuilder request = MockMvcRequestBuilders.post("/user/regist.do")
.param("cn_user_name", "demo")
.param("cn_user_password", "123456");
//发送一个http请求
MvcResult result = mock.perform(request).andDo(MockMvcResultHandlers.print()).andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
//提取json字符串
String jsonStr = result.getResponse().getContentAsString();
System.out.println(jsonStr);
//使用断言判断
ObjectMapper mapper = new ObjectMapper();
NoteResult noteResult = mapper.readValue(jsonStr,NoteResult.class);
Assert.assertEquals(1, noteResult.getStatus());
}
}
相关文章推荐
- 25种提高网页加载速度的方法和技巧
- Unity3D项目之《坦克大战》
- Spark学习笔记10-RDD(Resilient Distributed Datasets)
- jsp指令标识
- spring MVC配置详解
- CSDN-markdown编辑器的使用
- 144. Binary Tree Preorder Traversal &&94. Binary Tree Inorder Traversal
- 运算符和表达式
- 【杭电oj】1873 - 看病要排队(优先队列,水)
- 我来看性能问题
- java小小工具第三弹 文本编辑器
- DELPHI XE7 新的并行库
- LeetCode Super Ugly Number
- POJ 1743:后缀数组
- ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发
- DBMS_UTILITY.GET_CPU_TIME和DBMS_UTILITY.GET_TIME
- MVC中将上一次导出的EXCEL文件导入验证并保存到数据库中
- [LeetCode OJ]11. Container With Most Water
- Android客户端首次启动时的引导界面(viewpager)
- 安卓学习记录,BaseAdapter的使用