From 98aa0b9f1813ee3dfe9a8be04084efc785ebf024 Mon Sep 17 00:00:00 2001 From: thiszhc <2029364173@qq.com> Date: 星期六, 17 六月 2023 00:47:41 +0800 Subject: [PATCH] add 查看授权列表 --- ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java | 12 -- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java | 57 +++++++++ ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java | 12 - ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java | 25 ++-- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java | 55 ++++---- ruoyi-admin/src/main/resources/application-dev.yml | 149 ++++++++++++++++++++++++ 6 files changed, 248 insertions(+), 62 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java index 8cb96cd..515ec1b 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java @@ -25,7 +25,6 @@ import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.system.domain.bo.SysTenantBo; import org.dromara.system.domain.vo.SysTenantVo; -import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.service.ISocialUserService; import org.dromara.system.service.ISysConfigService; import org.dromara.system.service.ISysTenantService; @@ -139,14 +138,6 @@ @GetMapping("/binding/{source}") @ResponseBody public R<LoginVo> authBinding(@PathVariable("source") String source, HttpServletRequest request){ - SysUserVo userLoding = new SysUserVo(); - if (ObjectUtil.isNull(userLoding)) { - return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曞啀缁戝畾"); - } - if (socialUserService.isExistByUserIdAndSource(userLoding.getUserId(),source)) - { - return R.fail(source + "骞冲彴璐﹀彿宸茬粡琚处鍙风粦瀹�"); - } SocialLoginConfigProperties obj = socialProperties.getType().get(source); if (ObjectUtil.isNull(obj)){ return R.fail(source + "骞冲彴璐﹀彿鏆備笉鏀寔"); @@ -191,9 +182,6 @@ Boolean rows = socialUserService.deleteWithValidById(socialId); return rows ? R.ok() : R.fail("鍙栨秷鎺堟潈澶辫触"); } - - - /** diff --git a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java index 479c390..e4aec24 100644 --- a/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java +++ b/ruoyi-admin/src/main/java/org/dromara/web/service/SysLoginService.java @@ -34,11 +34,9 @@ import org.dromara.common.web.config.properties.CaptchaProperties; import org.dromara.system.domain.SysUser; import org.dromara.system.domain.bo.SocialUserBo; -import org.dromara.system.domain.bo.SysUserBo; import org.dromara.system.domain.vo.SocialUserVo; import org.dromara.system.domain.vo.SysTenantVo; import org.dromara.system.domain.vo.SysUserVo; -import org.dromara.system.mapper.SocialUserMapper; import org.dromara.system.mapper.SysUserMapper; import org.dromara.system.service.ISocialUserService; import org.dromara.system.service.ISysPermissionService; @@ -66,7 +64,6 @@ private final SysUserMapper userMapper; private final ISocialUserService socialUserService; - private final ISysUserService userService; private final CaptchaProperties captchaProperties; private final ISysPermissionService permissionService; private final ISysTenantService tenantService; @@ -176,22 +173,20 @@ * @param request Http璇锋眰瀵硅薄 * @return 缁熶竴鍝嶅簲瀹炰綋 */ - public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) throws IOException { + public R<String> socialLogin(String source, AuthResponse<AuthUser> authUser, HttpServletRequest request) { // 鍒ゆ柇鎺堟潈鍝嶅簲鏄惁鎴愬姛 if (!authUser.ok()) { return R.fail("瀵逛笉璧凤紝鎺堟潈淇℃伅楠岃瘉涓嶉�氳繃锛岃閫�鍑洪噸璇曪紒"); } AuthUser authUserData = authUser.getData(); - String authId = source + authUserData.getUuid(); - - SocialUserVo user = socialUserService.selectSocialUserByAuthId(authId); + SocialUserVo user = socialUserService.selectSocialUserByAuthId(authUserData.getSource() + authUserData.getUuid()); if (ObjectUtil.isNotNull(user)) { //鎵ц鐧诲綍鍜岃褰曠櫥褰曚俊鎭搷浣� return loginAndRecord(user.getTenantId(), user.getUserName(), authUserData); } else { // 鍒ゆ柇鏄惁宸茬櫥褰� if (LoginHelper.getUserId() == null) { - return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曞啀缁戝畾"); + return R.fail("鎺堟潈澶辫触锛岃鍏堢櫥褰曟墠鑳界粦瀹�"); } SocialUserBo socialUserBo = new SocialUserBo(); socialUserBo.setUserId(LoginHelper.getUserId()); @@ -201,7 +196,6 @@ socialUserBo.setNickName(authUserData.getNickname()); socialUserBo.setAvatar(authUserData.getAvatar()); socialUserBo.setOpenId(authUserData.getUuid()); - BeanUtils.copyProperties(authUserData, socialUserBo); BeanUtils.copyProperties(authUserData.getToken(), socialUserBo); socialUserService.insertByBo(socialUserBo); diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 5adc8ae..bbd9e17 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -184,3 +184,152 @@ sdkAppId: appid #鍦板煙淇℃伅榛樿涓� ap-guangzhou 濡傛棤鐗规畩鏀瑰彉鍙笉鐢ㄨ缃� territory: ap-guangzhou + + + +justauth: + enabled: true + type: + QQ: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/qq/callback + union-id: false + WEIBO: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/weibo/callback + gitee: + client-id: 38eaaa1b77b5e064313057a2f5745ce3a9f3e7686d9bd302c7df2f308ef6db81 + client-secret: 2e633af8780cb9fe002c4c7291b722db944402e271efb99b062811f52d7da1ff + redirect-uri: http://localhost:80/social-login?source=gitee + DINGTALK: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/dingtalk/callback + BAIDU: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/baidu/callback + CSDN: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/csdn/callback + CODING: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/coding/callback + coding-group-name: xx + OSCHINA: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/oschina/callback + ALIPAY: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/alipay/callback + alipay-public-key: MIIB**************DAQAB + WECHAT_OPEN: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_open/callback + WECHAT_MP: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_mp/callback + WECHAT_ENTERPRISE: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/wechat_enterprise/callback + agent-id: 1000002 + TAOBAO: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/taobao/callback + GOOGLE: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/google/callback + FACEBOOK: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/facebook/callback + DOUYIN: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/douyin/callback + LINKEDIN: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/linkedin/callback + MICROSOFT: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/microsoft/callback + MI: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/mi/callback + TOUTIAO: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/toutiao/callback + TEAMBITION: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/teambition/callback + RENREN: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/renren/callback + PINTEREST: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/pinterest/callback + STACK_OVERFLOW: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/stack_overflow/callback + stack-overflow-key: asd*********asd + HUAWEI: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/huawei/callback + KUJIALE: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/kujiale/callback + GITLAB: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/gitlab/callback + MEITUAN: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/meituan/callback + ELEME: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/eleme/callback + TWITTER: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/twitter/callback + XMLY: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/xmly/callback + # 璁惧鍞竴鏍囪瘑ID + device-id: xxxxxxxxxxxxxx + # 瀹㈡埛绔搷浣滅郴缁熺被鍨嬶紝1-iOS绯荤粺锛�2-Android绯荤粺锛�3-Web + client-os-type: 3 + # 瀹㈡埛绔寘鍚嶏紝濡傛灉 clientOsType 涓�1鎴�2鏃跺繀濉�傚Android瀹㈡埛绔槸鍖呭悕锛屽IOS瀹㈡埛绔槸Bundle ID + #pack-id: xxxx + FEISHU: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/feishu/callback + JD: + client-id: 10**********6 + client-secret: 1f7d08**********5b7**********29e + redirect-uri: http://oauth.xkcoding.com/demo/oauth/jd/callback diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java new file mode 100644 index 0000000..38cc14c --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SocialUserController.java @@ -0,0 +1,57 @@ +package org.dromara.system.controller.system; + +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.web.core.BaseController; +import org.dromara.system.domain.vo.SocialUserVo; +import org.dromara.system.service.ISocialUserService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 绀句細鍖栧叧绯� + * + * @author thiszhc + * @date 2023-06-16 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/system/social") +public class SocialUserController extends BaseController { + + private final ISocialUserService socialUserService; + + /** + * 鏌ヨ绀句細鍖栧叧绯诲垪琛� + */ +// 杩欓噷鏀规垚鐢ㄦ埛榛樿鐨勩�傚彧鑳芥煡鐪嬭嚜宸辩殑鏉冮檺鏇村ソ鍝� +// @SaCheckPermission("system:user:list") + @GetMapping("/list") + public R<List<SocialUserVo>> list() { + return R.ok(socialUserService.queryList()); + } + + + /** + * 鑾峰彇绀句細鍖栧叧绯昏缁嗕俊鎭� + * + * @param id 涓婚敭 + */ +// 杩欓噷鏀规垚鐢ㄦ埛榛樿鐨勩�傚彧鑳芥煡鐪嬭嚜宸辩殑鏉冮檺鏇村ソ鍝� +// @SaCheckPermission("system:user:query") + @GetMapping("/{id}") + public R<SocialUserVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖") + @PathVariable String id) { + return R.ok(socialUserService.queryById(id)); + } + + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java index d9e87f7..00c4a5f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISocialUserService.java @@ -1,14 +1,8 @@ package org.dromara.system.service; -import org.dromara.system.domain.SocialUser; -import org.dromara.system.domain.bo.SysUserBo; -import org.dromara.system.domain.vo.SocialUserVo; import org.dromara.system.domain.bo.SocialUserBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; -import org.dromara.system.domain.vo.SysUserVo; +import org.dromara.system.domain.vo.SocialUserVo; -import java.util.Collection; import java.util.List; /** @@ -18,6 +12,17 @@ * @date 2023-06-12 */ public interface ISocialUserService { + + + /** + * 鏌ヨ绀句細鍖栧叧绯� + */ + SocialUserVo queryById(String id); + + /** + * 鏌ヨ绀句細鍖栧叧绯诲垪琛� + */ + List<SocialUserVo> queryList(); /** * 鏂板鎺堟潈鍏崇郴 @@ -29,12 +34,6 @@ * 鍒犻櫎绀句細鍖栧叧绯讳俊鎭� */ Boolean deleteWithValidById(Long id); - - - /** - * 鏍规嵁鐢ㄦ埛ID鏌ヨ鎺堟潈鍏崇郴 - */ - Boolean isExistByUserIdAndSource(Long userId, String source); /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java index fc34244..df71064 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SocialUserServiceImpl.java @@ -1,25 +1,15 @@ package org.dromara.system.service.impl; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.dromara.system.domain.bo.SysUserBo; -import org.dromara.system.domain.vo.SysUserVo; -import org.springframework.stereotype.Service; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.system.domain.SocialUser; import org.dromara.system.domain.bo.SocialUserBo; import org.dromara.system.domain.vo.SocialUserVo; -import org.dromara.system.domain.SocialUser; import org.dromara.system.mapper.SocialUserMapper; import org.dromara.system.service.ISocialUserService; +import org.springframework.stereotype.Service; import java.util.List; -import java.util.Map; -import java.util.Collection; /** * 绀句細鍖栧叧绯籗ervice涓氬姟灞傚鐞� @@ -33,6 +23,25 @@ private final SocialUserMapper baseMapper; + + /** + * 鏌ヨ绀句細鍖栧叧绯� + */ + @Override + public SocialUserVo queryById(String id){ + return baseMapper.selectVoById(id); + } + + /** + * 鎺堟潈鍒楄〃 + */ + @Override + public List<SocialUserVo> queryList() { + return baseMapper.selectVoList(); + } + + + /** * 鏂板绀句細鍖栧叧绯� */ @@ -42,7 +51,11 @@ validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { - bo.setId(add.getId()); + if (add != null) { + bo.setId(add.getId()); + }else { + return false; + } } return flag; } @@ -64,20 +77,6 @@ return baseMapper.deleteById(id) > 0; } - /** - * 鏍规嵁鐢ㄦ埛id鍜屾潵婧愭煡璇㈢敤鎴锋槸鍚﹀瓨鍦� - * - * @param userId 鐢ㄦ埛id - * @param source 鏉ユ簮 - * @return 鏄惁瀛樺湪 - */ - @Override - public Boolean isExistByUserIdAndSource(Long userId, String source) { - LambdaQueryWrapper<SocialUser> lqw = Wrappers.lambdaQuery(); - lqw.eq(SocialUser::getUserId, userId); - lqw.eq(SocialUser::getSource, source); - return baseMapper.selectCount(lqw) > 0; - } /** * 鏍规嵁authId鏌ヨ鐢ㄦ埛淇℃伅 -- Gitblit v1.9.3