diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java index 03925bb8b8..57bce9fbaa 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -119,8 +119,11 @@ public class AuthServer implements AuthApi { if (isOpenOidc()) { HttpServletRequest request = ServletUtils.request(); String idToken = request.getHeader("IdToken"); - OidcXpackService oidcXpackService = SpringContextUtil.getBean(OidcXpackService.class); - oidcXpackService.logout(idToken); + if (StringUtils.isNotBlank(idToken)) { + OidcXpackService oidcXpackService = SpringContextUtil.getBean(OidcXpackService.class); + oidcXpackService.logout(idToken); + } + } if (StringUtils.isEmpty(token) || StringUtils.equals("null", token) || StringUtils.equals("undefined", token)) { return "success"; diff --git a/backend/src/main/java/io/dataease/auth/service/AuthUserService.java b/backend/src/main/java/io/dataease/auth/service/AuthUserService.java index 2c2c6cf08b..22462d5fe9 100644 --- a/backend/src/main/java/io/dataease/auth/service/AuthUserService.java +++ b/backend/src/main/java/io/dataease/auth/service/AuthUserService.java @@ -13,6 +13,8 @@ public interface AuthUserService { SysUserEntity getUserByName(String username); + SysUserEntity getUserBySub(String sub); + List roles(Long userId); List permissions(Long userId); diff --git a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java index 614d6d54f2..fe11af4de1 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java @@ -52,6 +52,11 @@ public class AuthUserServiceImpl implements AuthUserService { return authMapper.findUserByName(username); } + @Override + public SysUserEntity getUserBySub(String sub) { + return authMapper.findUserBySub(sub); + } + @Override public List roles(Long userId){ return authMapper.roleCodes(userId); diff --git a/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java index 70b7f9f280..667aaa09e6 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/DynamicMenuServiceImpl.java @@ -13,7 +13,6 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; diff --git a/backend/src/main/java/io/dataease/base/domain/SysUser.java b/backend/src/main/java/io/dataease/base/domain/SysUser.java index e07c73e757..8867cc75c4 100644 --- a/backend/src/main/java/io/dataease/base/domain/SysUser.java +++ b/backend/src/main/java/io/dataease/base/domain/SysUser.java @@ -39,5 +39,7 @@ public class SysUser implements Serializable { private Integer from; + private String sub; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/domain/SysUserExample.java b/backend/src/main/java/io/dataease/base/domain/SysUserExample.java index 800cfe3d76..1b8fc36618 100644 --- a/backend/src/main/java/io/dataease/base/domain/SysUserExample.java +++ b/backend/src/main/java/io/dataease/base/domain/SysUserExample.java @@ -1213,6 +1213,76 @@ public class SysUserExample { addCriterion("`from` not between", value1, value2, "from"); return (Criteria) this; } + + public Criteria andSubIsNull() { + addCriterion("sub is null"); + return (Criteria) this; + } + + public Criteria andSubIsNotNull() { + addCriterion("sub is not null"); + return (Criteria) this; + } + + public Criteria andSubEqualTo(String value) { + addCriterion("sub =", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubNotEqualTo(String value) { + addCriterion("sub <>", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubGreaterThan(String value) { + addCriterion("sub >", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubGreaterThanOrEqualTo(String value) { + addCriterion("sub >=", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubLessThan(String value) { + addCriterion("sub <", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubLessThanOrEqualTo(String value) { + addCriterion("sub <=", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubLike(String value) { + addCriterion("sub like", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubNotLike(String value) { + addCriterion("sub not like", value, "sub"); + return (Criteria) this; + } + + public Criteria andSubIn(List values) { + addCriterion("sub in", values, "sub"); + return (Criteria) this; + } + + public Criteria andSubNotIn(List values) { + addCriterion("sub not in", values, "sub"); + return (Criteria) this; + } + + public Criteria andSubBetween(String value1, String value2) { + addCriterion("sub between", value1, value2, "sub"); + return (Criteria) this; + } + + public Criteria andSubNotBetween(String value1, String value2) { + addCriterion("sub not between", value1, value2, "sub"); + return (Criteria) this; + } } public static class Criteria extends GeneratedCriteria { diff --git a/backend/src/main/java/io/dataease/base/mapper/SysUserMapper.xml b/backend/src/main/java/io/dataease/base/mapper/SysUserMapper.xml index d2f11fdd43..b779a3a538 100644 --- a/backend/src/main/java/io/dataease/base/mapper/SysUserMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/SysUserMapper.xml @@ -19,6 +19,7 @@ + @@ -81,7 +82,7 @@ user_id, dept_id, username, nick_name, gender, phone, email, `password`, is_admin, enabled, create_by, update_by, pwd_reset_time, create_time, update_time, `language`, - `from` + `from`, sub @@ -296,6 +305,9 @@ `from` = #{record.from,jdbcType=INTEGER}, + + sub = #{record.sub,jdbcType=VARCHAR}, + @@ -319,7 +331,8 @@ create_time = #{record.createTime,jdbcType=BIGINT}, update_time = #{record.updateTime,jdbcType=BIGINT}, `language` = #{record.language,jdbcType=VARCHAR}, - `from` = #{record.from,jdbcType=INTEGER} + `from` = #{record.from,jdbcType=INTEGER}, + sub = #{record.sub,jdbcType=VARCHAR} @@ -375,6 +388,9 @@ `from` = #{from,jdbcType=INTEGER}, + + sub = #{sub,jdbcType=VARCHAR}, + where user_id = #{userId,jdbcType=BIGINT} @@ -395,7 +411,8 @@ create_time = #{createTime,jdbcType=BIGINT}, update_time = #{updateTime,jdbcType=BIGINT}, `language` = #{language,jdbcType=VARCHAR}, - `from` = #{from,jdbcType=INTEGER} + `from` = #{from,jdbcType=INTEGER}, + sub = #{sub,jdbcType=VARCHAR} where user_id = #{userId,jdbcType=BIGINT} \ No newline at end of file diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java index d082a0faea..2b1355256f 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.java @@ -25,6 +25,8 @@ public interface AuthMapper { SysUserEntity findUserByName(@Param("username") String username); + SysUserEntity findUserBySub(@Param("sub") String sub); + List roles(@Param("userId") Long userId); diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml index 981dfc5c93..3492d7ec10 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/AuthMapper.xml @@ -28,6 +28,10 @@ select user_id, username,nick_name, dept_id, password, enabled,email, phone, language ,is_admin from sys_user where username = #{username} + +