Browse Source

tuoheng_oidc_admin 开发

tags/v2.3.0
chenjiandong 1 year ago
parent
commit
c8ac869413
6 changed files with 38 additions and 5 deletions
  1. +1
    -0
      pom.xml
  2. +17
    -0
      tuoheng_oidc_server/src/main/java/com/tuoheng/model/dto/ClientRoleDto.java
  3. +8
    -0
      tuoheng_oidc_server/src/main/java/com/tuoheng/model/dto/UserBaseInfoDto.java
  4. +2
    -1
      tuoheng_oidc_server/src/main/java/com/tuoheng/service/impl/OidcUserInfoServiceImpl.java
  5. +1
    -0
      tuoheng_oidc_server/src/main/java/com/tuoheng/service/impl/UserServiceImpl.java
  6. +9
    -4
      tuoheng_oidc_server/src/main/resources/mapper/UserMapper.xml

+ 1
- 0
pom.xml View File

@@ -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>

+ 17
- 0
tuoheng_oidc_server/src/main/java/com/tuoheng/model/dto/ClientRoleDto.java View File

@@ -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;

}

+ 8
- 0
tuoheng_oidc_server/src/main/java/com/tuoheng/model/dto/UserBaseInfoDto.java View File

@@ -18,6 +18,14 @@ public class UserBaseInfoDto {

private String password;

/**
* 可以访问的 client
*/
private List<String> authorityList;

/**
* 可以访问的 client 以及 role
*/
private List<ClientRoleDto> clientRoleDtoList;

}

+ 2
- 1
tuoheng_oidc_server/src/main/java/com/tuoheng/service/impl/OidcUserInfoServiceImpl.java View File

@@ -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);

+ 1
- 0
tuoheng_oidc_server/src/main/java/com/tuoheng/service/impl/UserServiceImpl.java View File

@@ -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
- 4
tuoheng_oidc_server/src/main/resources/mapper/UserMapper.xml View File

@@ -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>


Loading…
Cancel
Save