diff --git a/mainData/src/main/java/com/lymsh/yimiao/main/data/dao/YmUsersMapper.java b/mainData/src/main/java/com/lymsh/yimiao/main/data/dao/YmUsersMapper.java index a53087f..5355daa 100644 --- a/mainData/src/main/java/com/lymsh/yimiao/main/data/dao/YmUsersMapper.java +++ b/mainData/src/main/java/com/lymsh/yimiao/main/data/dao/YmUsersMapper.java @@ -18,4 +18,6 @@ public interface YmUsersMapper { public List queryYmUsers(YmUsersQuery query); + public YmUsers getUsersByLoginCenterId(Integer id); + } \ No newline at end of file diff --git a/mainData/src/main/java/com/lymsh/yimiao/main/data/service/YmUsersService.java b/mainData/src/main/java/com/lymsh/yimiao/main/data/service/YmUsersService.java index badf35f..753f0eb 100644 --- a/mainData/src/main/java/com/lymsh/yimiao/main/data/service/YmUsersService.java +++ b/mainData/src/main/java/com/lymsh/yimiao/main/data/service/YmUsersService.java @@ -5,6 +5,19 @@ import com.lymsh.yimiao.main.data.model.YmUsersQuery; import java.util.List; -public interface YmUsersService {public void addYmUsers(YmUsers obj);public void updateYmUsers(YmUsers obj);public void deleteYmUsers (Integer id);public YmUsers getYmUsers (Integer id);public int queryYmUsersCount (YmUsersQuery query);public List queryYmUsers (YmUsersQuery query); +public interface YmUsersService { + public void addYmUsers(YmUsers obj); + + public void updateYmUsers(YmUsers obj); + + public void deleteYmUsers(Integer id); + + public YmUsers getYmUsers(Integer id); + + public int queryYmUsersCount(YmUsersQuery query); + + public List queryYmUsers(YmUsersQuery query); + + public YmUsers getUsersByLoginCenterId(Integer id); } \ No newline at end of file diff --git a/mainData/src/main/java/com/lymsh/yimiao/main/data/service/impl/YmUsersServiceImpl.java b/mainData/src/main/java/com/lymsh/yimiao/main/data/service/impl/YmUsersServiceImpl.java index 15ac9aa..f2d226d 100644 --- a/mainData/src/main/java/com/lymsh/yimiao/main/data/service/impl/YmUsersServiceImpl.java +++ b/mainData/src/main/java/com/lymsh/yimiao/main/data/service/impl/YmUsersServiceImpl.java @@ -49,4 +49,8 @@ public class YmUsersServiceImpl implements YmUsersService { return ymUsersMapper.queryYmUsers(query); } + @Override + public YmUsers getUsersByLoginCenterId(Integer id){ + return ymUsersMapper.getUsersByLoginCenterId(id); + } } \ No newline at end of file diff --git a/mainData/src/main/java/com/lymsh/yimiao/main/data/util/ImageUtil.java b/mainData/src/main/java/com/lymsh/yimiao/main/data/util/ImageUtil.java new file mode 100644 index 0000000..36a93e0 --- /dev/null +++ b/mainData/src/main/java/com/lymsh/yimiao/main/data/util/ImageUtil.java @@ -0,0 +1,13 @@ +package com.lymsh.yimiao.main.data.util; + +/** + * Created by Administrator on 2016/5/2 0002. + */ +public class ImageUtil { + + //默认用户头像 + public static final String DEFAULTUSERAVATAR = "FsfCs4mlJeszthuOTyX9FiH-dGlA"; + //默认宝宝头像 + public static final String DEFAULTBABYAVATAR = ""; + +} diff --git a/mainData/src/main/resources/mainOrm/MedInoculateorder.xml b/mainData/src/main/resources/mainOrm/MedInoculateorder.xml index 6f94195..22101dd 100644 --- a/mainData/src/main/resources/mainOrm/MedInoculateorder.xml +++ b/mainData/src/main/resources/mainOrm/MedInoculateorder.xml @@ -13,7 +13,7 @@ - select io_id,io_kidId,io_vaccineId,io_organizationId,io_inoculateDate,io_inoculateTime,io_orderOper,io_orderTime FROM med_inoculateorder WHERE io_id = #{ioId,jdbcType=VARCHAR} diff --git a/mainData/src/main/resources/mainOrm/YmUsers.xml b/mainData/src/main/resources/mainOrm/YmUsers.xml index 182ecaa..2cfc63a 100644 --- a/mainData/src/main/resources/mainOrm/YmUsers.xml +++ b/mainData/src/main/resources/mainOrm/YmUsers.xml @@ -68,6 +68,13 @@ select id,phone,avatar,nickname,yn,created,modified,last_login_time,login_center from ym_users where id = #{id,jdbcType=INTEGER} + + + diff --git a/webApi/src/main/java/com/lyms/yimiao/web/controller/v1/UserController.java b/webApi/src/main/java/com/lyms/yimiao/web/controller/v1/UserController.java index 437822a..7e26e14 100644 --- a/webApi/src/main/java/com/lyms/yimiao/web/controller/v1/UserController.java +++ b/webApi/src/main/java/com/lyms/yimiao/web/controller/v1/UserController.java @@ -2,7 +2,7 @@ package com.lyms.yimiao.web.controller.v1; import com.lymsh.mommybaby.basecommon.base.BaseController; import com.lymsh.mommybaby.basecommon.base.TokenRequired; -import com.lymsh.mommybaby.basecommon.context.MommyBobyContext; +import com.lymsh.mommybaby.basecommon.service.TokenService; import com.lymsh.mommybaby.basecommon.util.ContextHolder; import com.lymsh.mommybaby.basecommon.util.JsonUtil; import com.lymsh.mommybaby.basecommon.util.QiniuUtil; @@ -11,6 +11,7 @@ import com.lymsh.yimiao.main.data.enumdata.YnEnum; import com.lymsh.yimiao.main.data.model.YmUsers; import com.lymsh.yimiao.main.data.model.YmUsersQuery; import com.lymsh.yimiao.main.data.service.YmUsersService; +import com.lymsh.yimiao.main.data.util.ImageUtil; import com.lymsh.yimiao.main.data.util.LoginContext; import com.lymsh.yimiao.main.data.util.LoginUtil; import com.lymsh.yimiao.main.data.util.PhoneUtil; @@ -22,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; import java.util.HashMap; @@ -45,6 +47,8 @@ public class UserController extends BaseController { private String typeId; @Autowired private YmUsersService usersService; + @Autowired + private TokenService tokenService; /** * 发送验证码 @@ -145,14 +149,18 @@ public class UserController extends BaseController { */ @RequestMapping(value = "/userInfo", method = RequestMethod.GET) @TokenRequired - public void getUserInfo(HttpServletResponse response){ + public void getUserInfo(HttpServletResponse response,HttpServletRequest request){ + + LoginContext loginContext = (LoginContext) request.getAttribute("loginContext"); + + System.out.println("+++++++++++++++"+loginContext.getId()); //取到当前登陆用户的id - YmUsers users = usersService.getYmUsers(ContextHolder.getContext().getUserId()); + YmUsers users = usersService.getYmUsers(loginContext.getId()); Map map = new HashMap<>(); //如果没有昵称,返回手机 map.put("nickname",users.getNickname()!=null ? users.getNickname() : users.getPhone()); //如果没有头像,返回默认头像 - map.put("avatar", QiniuUtil.buildImg(users.getAvatar()!=null ? users.getAvatar() : "默认头像")); + map.put("avatar", QiniuUtil.buildImg(users.getAvatar()!=null ? users.getAvatar() : ImageUtil.DEFAULTUSERAVATAR)); writeJson(response, JsonUtil.obj2JsonString(map)); } diff --git a/webApi/src/main/java/com/lyms/yimiao/web/interceptor/TokenValidateInteceptor.java b/webApi/src/main/java/com/lyms/yimiao/web/interceptor/TokenValidateInteceptor.java new file mode 100644 index 0000000..79b2b94 --- /dev/null +++ b/webApi/src/main/java/com/lyms/yimiao/web/interceptor/TokenValidateInteceptor.java @@ -0,0 +1,92 @@ +package com.lyms.yimiao.web.interceptor; + + +import com.lymsh.mommybaby.basecommon.base.BaseController; +import com.lymsh.mommybaby.basecommon.base.TokenRequired; +import com.lymsh.mommybaby.basecommon.exception.TokenException; +import com.lymsh.mommybaby.basecommon.util.ContextHolder; +import com.lymsh.mommybaby.basecommon.util.LogUtil; +import com.lymsh.yimiao.main.data.model.YmUsers; +import com.lymsh.yimiao.main.data.service.YmUsersService; +import com.lymsh.yimiao.main.data.util.LoginContext; +import com.lymsh.yimiao.main.data.util.LoginUtil; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.annotation.Annotation; + +/** + * 验证token拦截器 + * + *
    + *
  • + * 1、springmvc中配置TokenValidateInteceptor的拦截 + * 2、在需要拦截的方法上面配置TokenRequired注解 + *
  • + *
+ * + */ +public class TokenValidateInteceptor extends HandlerInterceptorAdapter { + @Autowired + private YmUsersService usersService; + + public static boolean isSiteController(Object handler) { + return handler instanceof HandlerMethod && (((HandlerMethod) handler).getBean() instanceof BaseController); + } + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + if (!isSiteController(handler)) + return true; + TokenRequired clientRequired = findAnnotation((HandlerMethod) handler, TokenRequired.class); + if (null == clientRequired) + return true; + + validateToken(request, response); + + return true; + } + + private T findAnnotation(HandlerMethod handler, Class annotationType) { + T annotation = handler.getBeanType().getAnnotation(annotationType); + if (annotation != null) + return annotation; + return handler.getMethodAnnotation(annotationType); + } + + public boolean validateToken(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { + String token = httpServletRequest.getHeader("Authorization"); + if (StringUtils.isEmpty(token)) { + throw new TokenException(); + } + LoginContext loginContext = LoginUtil.checkLoginState(token); + if(!loginContext.isLogin()) { + throw new TokenException(); + } + YmUsers users = usersService.getUsersByLoginCenterId(loginContext.getId()); + if(null == users) { + throw new TokenException(); + } + loginContext.setId(users.getId()); + loginContext.setToken(token); + httpServletRequest.setAttribute("loginContext", loginContext); + + LogUtil.tokenInfo(" userId:" + users.getId() + ", ,url:" + httpServletRequest.getRequestURI() + ",method:" + httpServletRequest.getMethod()); + + return loginContext.isLogin(); + } + /** + * This implementation is empty. + */ + @Override + public void afterCompletion( + HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) + throws Exception { + ContextHolder.clean(); + } +} \ No newline at end of file diff --git a/webApi/src/main/resources/spring/applicationContext-mvc.xml b/webApi/src/main/resources/spring/applicationContext-mvc.xml index 4895643..34678d1 100644 --- a/webApi/src/main/resources/spring/applicationContext-mvc.xml +++ b/webApi/src/main/resources/spring/applicationContext-mvc.xml @@ -11,4 +11,10 @@ + + + + + + \ No newline at end of file