Commit 10a492c6 authored by libin's avatar libin

imi 登录

parent 1e424470
...@@ -214,4 +214,9 @@ public class AuthController { ...@@ -214,4 +214,9 @@ public class AuthController {
return data; return data;
} }
@PostMapping("/imi/login")
public String loginImiWithToken(){
return authService.loginImiWithToken();
}
} }
...@@ -67,4 +67,8 @@ public interface IUserService { ...@@ -67,4 +67,8 @@ public interface IUserService {
@PostMapping("/api/app/applet/registry") @PostMapping("/api/app/applet/registry")
public JSONObject appletRegistry(@RequestParam(value="username")String username, @RequestParam(value="nickname")String nickname, public JSONObject appletRegistry(@RequestParam(value="username")String username, @RequestParam(value="nickname")String nickname,
@RequestParam(value="headimgurl")String headimgurl,@RequestParam(value="userid",defaultValue="0")Integer userid); @RequestParam(value="headimgurl")String headimgurl,@RequestParam(value="userid",defaultValue="0")Integer userid);
@PostMapping("/api/app/imi/login")
String loginImiWithToken();
} }
...@@ -8,6 +8,7 @@ import feign.RequestTemplate; ...@@ -8,6 +8,7 @@ import feign.RequestTemplate;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
...@@ -22,12 +23,16 @@ public class ClientTokenInterceptor implements RequestInterceptor { ...@@ -22,12 +23,16 @@ public class ClientTokenInterceptor implements RequestInterceptor {
@Autowired @Autowired
private AuthClientService authClientService; private AuthClientService authClientService;
@Value("${auth.user.token-header:Authorization}")
private String tokenHeader;
@Override @Override
public void apply(RequestTemplate requestTemplate) { public void apply(RequestTemplate requestTemplate) {
try { try {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
requestTemplate.header(clientConfiguration.getClientTokenHeader(), authClientService.apply(clientConfiguration.getClientId(), clientConfiguration.getClientSecret())); requestTemplate.header(clientConfiguration.getClientTokenHeader(), authClientService.apply(clientConfiguration.getClientId(), clientConfiguration.getClientSecret()));
requestTemplate.header("userHost", ClientUtil.getClientIp(requestAttributes.getRequest())); requestTemplate.header("userHost", ClientUtil.getClientIp(requestAttributes.getRequest()));
requestTemplate.header(tokenHeader,requestAttributes.getRequest().getHeader(tokenHeader));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -33,4 +33,6 @@ public interface AuthService { ...@@ -33,4 +33,6 @@ public interface AuthService {
* @return * @return
*/ */
JSONObject appletRegistry(String username,String headimgurl,String nickname,Integer userid); JSONObject appletRegistry(String username,String headimgurl,String nickname,Integer userid);
String loginImiWithToken();
} }
...@@ -96,4 +96,9 @@ public class AppAuthServiceImpl implements AuthService { ...@@ -96,4 +96,9 @@ public class AppAuthServiceImpl implements AuthService {
return userService.appletRegistry(username,headimgurl,nickname,userid); return userService.appletRegistry(username,headimgurl,nickname,userid);
} }
@Override
public String loginImiWithToken() {
return userService.loginImiWithToken();
}
} }
...@@ -93,4 +93,9 @@ public class AuthServiceImpl implements AuthService { ...@@ -93,4 +93,9 @@ public class AuthServiceImpl implements AuthService {
public JSONObject appletRegistry(String username,String headimgurl,String nickname,Integer userid) { public JSONObject appletRegistry(String username,String headimgurl,String nickname,Integer userid) {
return userService.appletRegistry(username,headimgurl,nickname,userid); return userService.appletRegistry(username,headimgurl,nickname,userid);
} }
@Override
public String loginImiWithToken() {
return userService.loginImiWithToken();
}
} }
...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel; ...@@ -6,6 +6,7 @@ import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO; import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO; import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -111,4 +112,8 @@ public interface UserFeign { ...@@ -111,4 +112,8 @@ public interface UserFeign {
@GetMapping("/app/user/one") @GetMapping("/app/user/one")
public AppUserLogin one(@RequestParam(value = "username")String username); public AppUserLogin one(@RequestParam(value = "username")String username);
@GetMapping("/api/app/imi/{imiId}")
public ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId);
} }
package com.github.wxiaoqi.security.admin.vo;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/15 18:15
*/
@Data
public class ImiVo {
private String nickname;
private String headimgurl;
}
...@@ -8,12 +8,17 @@ import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService; ...@@ -8,12 +8,17 @@ import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.vo.AppUserVo; import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.time.Instant; import java.time.Instant;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* ${DESCRIPTION} * ${DESCRIPTION}
...@@ -34,6 +39,7 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -34,6 +39,7 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
/** /**
* 根据用户id获取用户信息 * 根据用户id获取用户信息
*
* @param userid * @param userid
* @return * @return
*/ */
...@@ -78,9 +84,17 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -78,9 +84,17 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
} }
public Map<Integer, AppUserDetail> findUserIdAndUserDetailMapByMemberIds(List<Integer> memberIds) {
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = new HashMap<>();
Example example = new Example(AppUserDetail.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userid", memberIds);
List<AppUserDetail> appUserDetails = mapper.selectByExample(example);
if (CollectionUtils.isNotEmpty(appUserDetails)){
userIdAndAppUserDetailMap = appUserDetails.stream().collect(Collectors.toMap(AppUserDetail::getUserid, Function.identity()));
}
return userIdAndAppUserDetailMap;
}
} }
...@@ -14,10 +14,12 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -14,10 +14,12 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.time.Instant; import java.time.Instant;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -168,4 +170,24 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> { ...@@ -168,4 +170,24 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
} }
return phoneAndUserIdMap; return phoneAndUserIdMap;
} }
public Map<Integer, AppUserLogin> findUserIdAndUserLoginMapByMemberIds(List<Integer> memberIds) {
Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = new HashMap<>();
List<AppUserLogin> appUserLogins = mapper.selectByIdList(memberIds);
if (CollectionUtils.isNotEmpty(appUserLogins)){
userIdAndAppUserLoginMap = appUserLogins.stream().collect(Collectors.toMap(AppUserLogin::getId, Function.identity()));
}
return userIdAndAppUserLoginMap;
}
public AppUserLogin findUserByImiId(Integer imiId) {
Example example = new Example(AppUserLogin.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("imUserid",imiId);
List<AppUserLogin> appUserLogins = mapper.selectByExample(example);
if (CollectionUtils.isNotEmpty(appUserLogins)){
return appUserLogins.get(0);
}
return null;
}
} }
...@@ -4,11 +4,12 @@ import com.github.wxiaoqi.security.admin.entity.AppUserLogin; ...@@ -4,11 +4,12 @@ import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserManage; import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update; import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
public interface AppUserLoginMapper extends Mapper<AppUserLogin> { public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdListMapper<AppUserLogin,Integer> {
/** /**
......
...@@ -4,9 +4,14 @@ import com.ace.cache.annotation.Cache; ...@@ -4,9 +4,14 @@ import com.ace.cache.annotation.Cache;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService; import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.rpc.service.PermissionService; import com.github.wxiaoqi.security.admin.rpc.service.PermissionService;
import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo; import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
import com.github.wxiaoqi.security.api.vo.user.AppUserInfo; import com.github.wxiaoqi.security.api.vo.user.AppUserInfo;
import com.github.wxiaoqi.security.api.vo.user.UserInfo; import com.github.wxiaoqi.security.api.vo.user.UserInfo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode; import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.process.SystemConfig; import com.github.wxiaoqi.security.common.util.process.SystemConfig;
...@@ -14,7 +19,10 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; ...@@ -14,7 +19,10 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -27,6 +35,12 @@ public class AppUserRest { ...@@ -27,6 +35,12 @@ public class AppUserRest {
@Autowired @Autowired
private AppPermissionService appPermissionService; private AppPermissionService appPermissionService;
@Autowired
private UserAuthUtil authUtil;
@Autowired
private UserAuthConfig userAuthConfig;
// @Cache(key="permission") // @Cache(key="permission")
// @RequestMapping(value = "/permissions", method = RequestMethod.GET) // @RequestMapping(value = "/permissions", method = RequestMethod.GET)
// public @ResponseBody // public @ResponseBody
...@@ -199,5 +213,20 @@ public class AppUserRest { ...@@ -199,5 +213,20 @@ public class AppUserRest {
return appPermissionService.appletRegistry(username,headimgurl,nickname,userid); return appPermissionService.appletRegistry(username,headimgurl,nickname,userid);
} }
@PostMapping("/imi/login")
public String loginImiWithToken(){
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = servletRequestAttributes.getRequest();
try {
IJWTInfo infoFromToken = authUtil.getInfoFromToken(userAuthConfig.getToken(request));
return appPermissionService.loginImiWithUserId(Integer.valueOf(infoFromToken.getId()));
} catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/imi/{imiId}")
public ImiVo findUserInfoByImiId(@PathVariable(value = "imiId") Integer imiId){
return appPermissionService.findUserInoByImiId(imiId);
}
} }
...@@ -43,10 +43,7 @@ import org.springframework.web.context.request.RequestContextHolder; ...@@ -43,10 +43,7 @@ import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment