@@ -11,6 +11,7 @@ | |||
</parent> | |||
<modules> | |||
<module>tuoheng_oidc_server</module> | |||
<module>tuoheng_oidc_admin</module> | |||
</modules> | |||
<groupId>com.tuoheng</groupId> | |||
<artifactId>tuoheng_oidc</artifactId> |
@@ -0,0 +1,17 @@ | |||
package com.tuoheng.model.dto; | |||
import lombok.Data; | |||
/** | |||
* @author chenjiandong | |||
* @description: TODO | |||
* @date 2022/10/26 11:33 | |||
*/ | |||
@Data | |||
public class ClientRoleDto { | |||
private String clientId; | |||
private Integer roleId; | |||
} |
@@ -18,6 +18,14 @@ public class UserBaseInfoDto { | |||
private String password; | |||
/** | |||
* 可以访问的 client | |||
*/ | |||
private List<String> authorityList; | |||
/** | |||
* 可以访问的 client 以及 role | |||
*/ | |||
private List<ClientRoleDto> clientRoleDtoList; | |||
} |
@@ -31,7 +31,8 @@ public class OidcUserInfoServiceImpl implements OidcUserInfoService { | |||
if (scopes.contains(OidcScopes.PROFILE)) { | |||
builder.claim("userId", userBaseInfoDto.getUserId()) | |||
.claim("userName", userBaseInfoDto.getUserName()) | |||
.claim("authority", userBaseInfoDto.getAuthorityList()); | |||
.claim("authority", userBaseInfoDto.getAuthorityList()) | |||
.claim("clientRoleList", userBaseInfoDto.getClientRoleDtoList()); | |||
} | |||
/*if (scopes.contains(OidcScopes.EMAIL)) { | |||
builder.email(name + "@163.com").emailVerified(true); |
@@ -62,6 +62,7 @@ public class UserServiceImpl implements UserSevice { | |||
@Override | |||
public JsonResult getUserInfo(GetUserInfoDto getUserInfoDto){ | |||
UserBaseInfoDto userBaseInfoDto = userMapper.getMpUserInfo(getUserInfoDto.getUsername()); | |||
return JsonResult.success(userBaseInfoDto); | |||
} | |||
@@ -9,6 +9,10 @@ | |||
<collection property="authorityList" ofType="java.lang.String" javaType="java.util.List"> | |||
<result column="authority" jdbcType="VARCHAR"/> | |||
</collection> | |||
<collection property="clientRoleDtoList" ofType="com.tuoheng.model.dto.ClientRoleDto" javaType="java.util.List"> | |||
<result column="clientId" jdbcType="VARCHAR" property="clientId" /> | |||
<result column="roleId" jdbcType="INTEGER" property="roleId" /> | |||
</collection> | |||
</resultMap> | |||
<insert id="insertUser" parameterType="com.tuoheng.model.po.UserPo" keyProperty="id" useGeneratedKeys="true"> | |||
@@ -16,18 +20,19 @@ | |||
values (#{username}, #{password}) | |||
</insert> | |||
<select id="getUserBaseInfo" resultMap="UserBaseInfoMap"> | |||
select a.id as userId, a.username as userName, a.password , b.authority | |||
select a.id as userId, a.username as userName, a.password , b.authority, c.client_id as clientId, c.role_id as roleId | |||
from users a | |||
inner join authorities b on a.id = b.user_id | |||
inner join authorities b on a.id = b.user_id | |||
inner join t_client_user_role c on a.id = c.user_id | |||
where a.username = #{username} | |||
</select> | |||
<select id="getMpUserInfo" resultMap="UserBaseInfoMap"> | |||
select a.id as userId, a.username as userName, b.authority | |||
select a.id as userId, a.username as userName, a.password , b.authority, c.client_id as clientId, c.role_id as roleId | |||
from users a | |||
inner join authorities b on a.id = b.user_id | |||
inner join t_client_user_role c on a.id = c.user_id | |||
where a.username = #{username} | |||
</select> | |||