Browse Source

👈 重构安全框架底层代码支持当前用户修改

master
wangxiang 3 years ago
parent
commit
948b9d9b98
  1. 5
      kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java
  2. 16
      kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java

5
kicc-common/kicc-common-data/src/main/java/com/cloud/kicc/common/data/entity/KiccUser.java

@ -1,7 +1,9 @@
package com.cloud.kicc.common.data.entity; package com.cloud.kicc.common.data.entity;
import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
@ -15,6 +17,8 @@ import java.util.Collection;
* @Author: entfrm开发团队-王翔 * @Author: entfrm开发团队-王翔
* @Date: 2022/2/17 * @Date: 2022/2/17
*/ */
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
public class KiccUser extends User { public class KiccUser extends User {
/** /**
@ -39,6 +43,7 @@ public class KiccUser extends User {
* 多租户ID * 多租户ID
*/ */
@Getter @Getter
@Setter
private String tenantId; private String tenantId;
public KiccUser(String id, String deptId, String username, String password, String phone, String tenantId, boolean enabled, public KiccUser(String id, String deptId, String username, String password, String phone, String tenantId, boolean enabled,

16
kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/UserServiceImpl.java

@ -121,21 +121,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) currentAuthentication; OAuth2Authentication oAuth2Authentication = (OAuth2Authentication) currentAuthentication;
OAuth2AccessToken accessToken = tokenStore.getAccessToken(oAuth2Authentication); OAuth2AccessToken accessToken = tokenStore.getAccessToken(oAuth2Authentication);
OAuth2Request oAuth2Request = oAuth2Authentication.getOAuth2Request(); OAuth2Request oAuth2Request = oAuth2Authentication.getOAuth2Request();
KiccUser currentKiccUser = SecurityUtils.getUser();
// 更新当前授权成功用户的信息 // 更新当前授权成功用户的信息
KiccUser kiccUser = new KiccUser( KiccUser kiccUser = SecurityUtils.getUser().setTenantId(StrUtil.join(",", tenantIds));
currentKiccUser.getId(),
currentKiccUser.getDeptId(),
currentKiccUser.getUsername(),
currentKiccUser.getPassword(),
currentKiccUser.getPhone(),
StrUtil.join(",", tenantIds),
currentKiccUser.isEnabled(),
currentKiccUser.isAccountNonExpired(),
currentKiccUser.isCredentialsNonExpired(),
currentKiccUser.isAccountNonLocked(),
currentKiccUser.getAuthorities()
);
// 加载用户名密码身份验证令牌 // 加载用户名密码身份验证令牌
Authentication userAuthentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities()); Authentication userAuthentication = new UsernamePasswordAuthenticationToken(kiccUser, "N/A", kiccUser.getAuthorities());
OAuth2Authentication authentication = new OAuth2Authentication(oAuth2Request, userAuthentication); OAuth2Authentication authentication = new OAuth2Authentication(oAuth2Request, userAuthentication);
@ -143,6 +130,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
tokenStore.storeAccessToken(accessToken, authentication); tokenStore.storeAccessToken(accessToken, authentication);
} }
/** /**
* 新增用户角色信息 * 新增用户角色信息
* @param user 用户对象 * @param user 用户对象

Loading…
Cancel
Save