Commit e96b8d87 by fengshuonan

更新oauth2的头像

parent 24c71d02
package cn.stylefeng.guns.oauth.modular.controller;
import cn.stylefeng.guns.oauth.modular.service.LoginService;
import cn.stylefeng.guns.oauth.modular.service.OauthUserInfoService;
import cn.stylefeng.guns.sys.core.shiro.ShiroKit;
import cn.stylefeng.roses.core.base.controller.BaseController;
import lombok.extern.slf4j.Slf4j;
import me.zhyd.oauth.model.AuthResponse;
......@@ -32,9 +34,11 @@ public class OAuthController extends BaseController {
@Autowired
private LoginService loginService;
@Autowired
private OauthUserInfoService oauthUserInfoService;
/**
* 第三方登录跳转
* njui7crdxe
*
* @author fengshuonan
* @Date 2019/6/9 16:44
......@@ -67,4 +71,21 @@ public class OAuthController extends BaseController {
return "redirect:/";
}
/**
* 第三方登录的头像
*
* @author fengshuonan
* @Date 2019/6/9 16:44
*/
@RequestMapping("/avatar")
public String avatar() {
Long userId = ShiroKit.getUserNotNull().getId();
//获取第三方登录用户的头像
String avatarUrl = oauthUserInfoService.getAvatarUrl(userId);
return REDIRECT + avatarUrl;
}
}
package cn.stylefeng.guns.oauth.modular.factory;
import cn.stylefeng.guns.oauth.modular.entity.OauthUserInfo;
import cn.stylefeng.guns.sys.core.constant.Const;
import cn.stylefeng.guns.sys.core.constant.state.ManagerStatus;
import cn.stylefeng.guns.sys.core.shiro.ShiroKit;
import cn.stylefeng.guns.sys.modular.system.entity.User;
......@@ -56,7 +57,7 @@ public class OAuthUserInfoFactory {
systemUser.setSalt(salt);
//利用openId设置账号
systemUser.setAccount("oauth2_" + authUser.getSource().name() + "_" + authUser.getUsername());
systemUser.setAccount(Const.OAUTH2_ACCOUNT_PREFIX + "_" + authUser.getSource().name() + "_" + authUser.getUsername());
systemUser.setName(authUser.getNickname());
systemUser.setBirthday(new Date());
systemUser.setSex(AuthUserGender.MALE.equals(authUser.getGender()) ? "M" : "F");
......
......@@ -66,4 +66,11 @@ public interface OauthUserInfoService extends IService<OauthUserInfo> {
*/
LayuiPageInfo findPageBySpec(OauthUserInfoParam param);
/**
* 获取用户头像地址
*
* @author fengshuonan
* @Date 2019-06-11 13:25
*/
String getAvatarUrl(Long userId);
}
......@@ -8,6 +8,7 @@ import cn.stylefeng.guns.oauth.modular.model.params.OauthUserInfoParam;
import cn.stylefeng.guns.oauth.modular.model.result.OauthUserInfoResult;
import cn.stylefeng.guns.oauth.modular.service.OauthUserInfoService;
import cn.stylefeng.roses.core.util.ToolUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -28,18 +29,18 @@ import java.util.List;
public class OauthUserInfoServiceImpl extends ServiceImpl<OauthUserInfoMapper, OauthUserInfo> implements OauthUserInfoService {
@Override
public void add(OauthUserInfoParam param){
public void add(OauthUserInfoParam param) {
OauthUserInfo entity = getEntity(param);
this.save(entity);
}
@Override
public void delete(OauthUserInfoParam param){
public void delete(OauthUserInfoParam param) {
this.removeById(getKey(param));
}
@Override
public void update(OauthUserInfoParam param){
public void update(OauthUserInfoParam param) {
OauthUserInfo oldEntity = getOldEntity(param);
OauthUserInfo newEntity = getEntity(param);
ToolUtil.copyProperties(newEntity, oldEntity);
......@@ -47,23 +48,29 @@ public class OauthUserInfoServiceImpl extends ServiceImpl<OauthUserInfoMapper, O
}
@Override
public OauthUserInfoResult findBySpec(OauthUserInfoParam param){
public OauthUserInfoResult findBySpec(OauthUserInfoParam param) {
return null;
}
@Override
public List<OauthUserInfoResult> findListBySpec(OauthUserInfoParam param){
public List<OauthUserInfoResult> findListBySpec(OauthUserInfoParam param) {
return null;
}
@Override
public LayuiPageInfo findPageBySpec(OauthUserInfoParam param){
public LayuiPageInfo findPageBySpec(OauthUserInfoParam param) {
Page pageContext = getPageContext();
IPage page = this.baseMapper.customPageList(pageContext, param);
return LayuiPageFactory.createPageInfo(page);
}
private Serializable getKey(OauthUserInfoParam param){
@Override
public String getAvatarUrl(Long userId) {
OauthUserInfo oauthUserInfo = this.getOne(new QueryWrapper<OauthUserInfo>().eq("user_id", userId));
return oauthUserInfo.getAvatar();
}
private Serializable getKey(OauthUserInfoParam param) {
return param.getOauthId();
}
......
......@@ -67,4 +67,10 @@ public interface Const {
*/
List<String> NONE_PERMISSION_RES = CollectionUtil.newLinkedList("/assets/**", "/gunsApi/**", "/login", "/global/sessionError", "/kaptcha", "/error", "/global/error", "/oauth/**");
/**
* OAuth2登录用户的账号标识
*/
String OAUTH2_ACCOUNT_PREFIX = "oauth2";
}
......@@ -16,10 +16,10 @@
package cn.stylefeng.guns.sys.core.shiro;
import cn.stylefeng.guns.base.shiro.ShiroUser;
import cn.stylefeng.guns.sys.core.constant.Const;
import cn.stylefeng.guns.sys.core.constant.factory.ConstantFactory;
import cn.stylefeng.guns.sys.core.exception.enums.BizExceptionEnum;
import cn.stylefeng.guns.sys.modular.system.entity.User;
import cn.stylefeng.guns.sys.core.constant.Const;
import cn.stylefeng.roses.core.util.ToolUtil;
import cn.stylefeng.roses.kernel.model.exception.ServiceException;
import org.apache.shiro.SecurityUtils;
......@@ -317,4 +317,15 @@ public class ShiroKit {
return shiroUser;
}
/**
* 判断用户是否是从oauth2登录过来的
*/
public static boolean oauth2Flag() {
String account = ShiroKit.getUserNotNull().getAccount();
if (account.startsWith(Const.OAUTH2_ACCOUNT_PREFIX)) {
return true;
} else {
return false;
}
}
}
......@@ -16,6 +16,7 @@
package cn.stylefeng.guns.sys.core.util;
import cn.stylefeng.guns.sys.core.listener.ConfigListener;
import cn.stylefeng.guns.sys.core.shiro.ShiroKit;
/**
* 获取默认图片地址
......@@ -42,8 +43,12 @@ public class DefaultImages {
* @Date 2018/10/30 5:51 PM
*/
public static String defaultAvatarUrl() {
if (ShiroKit.oauth2Flag()) {
return ConfigListener.getConf().get("contextPath") + "/oauth/avatar";
} else {
return ConfigListener.getConf().get("contextPath") + "/system/previewAvatar";
}
}
/**
* 默认的404错误页面背景
......
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