diff --git a/dolphin-commons/dolphin-common-core/pom.xml b/dolphin-commons/dolphin-common-core/pom.xml index 03e1d0c..b66d716 100644 --- a/dolphin-commons/dolphin-common-core/pom.xml +++ b/dolphin-commons/dolphin-common-core/pom.xml @@ -16,6 +16,10 @@ org.springframework.boot spring-boot-starter-web + + cn.hutool.v7 + hutool-all + org.projectlombok lombok diff --git a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionAdvice.java b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java similarity index 72% rename from dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionAdvice.java rename to dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java index 1a5e3e6..6ecc4e5 100644 --- a/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionAdvice.java +++ b/dolphin-commons/dolphin-common-core/src/main/java/day/gitlab/dolphin/common/core/exception/GlobalExceptionHandler.java @@ -1,13 +1,11 @@ package day.gitlab.dolphin.common.core.exception; import day.gitlab.dolphin.common.core.entity.Result; -import org.springframework.stereotype.Component; -import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; -@Component -@ControllerAdvice -public class GlobalExceptionAdvice { +@RestControllerAdvice +public class GlobalExceptionHandler { @ExceptionHandler(value = BusinessException.class) public Result handleBusinessException(BusinessException e) { diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java index 5f67a8b..9a4b0cd 100644 --- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java +++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/AuthenticationFilter.java @@ -40,6 +40,7 @@ public class AuthenticationFilter extends OncePerRequestFilter { // 在未启用或是忽略校验的地址时直接放行 if (!securityConfig.isEnabled() || authorityIgnoreInitializer.isIgnoreUrl(request)) { filterChain.doFilter(request, response); + return; } try { @@ -51,6 +52,11 @@ public class AuthenticationFilter extends OncePerRequestFilter { response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setCharacterEncoding("UTF-8"); response.getWriter().write(new ObjectMapper().writeValueAsString(Result.failure(e))); + } catch (Exception e) { + response.setStatus(500); + response.setContentType(MediaType.APPLICATION_JSON_VALUE); + response.setCharacterEncoding("UTF-8"); + response.getWriter().write(new ObjectMapper().writeValueAsString(Result.failure(e.getMessage()))); } finally { SecurityContextHolder.clearAuthentication(); } diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityIgnoreInitializer.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityIgnoreInitializer.java index 8e81a2b..3b584bc 100644 --- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityIgnoreInitializer.java +++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/annotation/AuthorityIgnoreInitializer.java @@ -2,6 +2,7 @@ package day.gitlab.dolphin.common.security.annotation; import day.gitlab.dolphin.common.security.config.SecurityConfig; import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; @@ -21,6 +22,7 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +@Slf4j @Component public class AuthorityIgnoreInitializer implements ApplicationContextAware { @@ -34,6 +36,8 @@ public class AuthorityIgnoreInitializer implements ApplicationContextAware { RequestMappingHandlerMapping requestMappingHandlerMapping = ctx.getBean(RequestMappingHandlerMapping.class); Map handlerMethods = requestMappingHandlerMapping.getHandlerMethods(); + log.info("authorityIgnoreInitialize begin, contextPath: {}", contextPath); + if (StringUtils.hasText(securityConfig.getIgnoreUrls())) { Arrays.stream(securityConfig.getIgnoreUrls().split(",")) .filter(StringUtils::hasText) @@ -45,6 +49,7 @@ public class AuthorityIgnoreInitializer implements ApplicationContextAware { .map(IgnoreUrl::new) .forEach(this.ignoreUrls::add); } + log.info("authorityIgnoreInitialize default urls: {}", this.ignoreUrls); for (RequestMappingInfo mappingInfo : handlerMethods.keySet()) { HandlerMethod handlerMethod = handlerMethods.get(mappingInfo); @@ -75,11 +80,19 @@ public class AuthorityIgnoreInitializer implements ApplicationContextAware { urlPrefix.add(prefixUrl); } - urlPrefix.stream() + List methodIgnoreUrls = urlPrefix.stream() .flatMap(sub -> mappingInfo.getPatternValues().stream().filter(StringUtils::hasText).map(s -> sub + s)) .map(IgnoreUrl::new) - .forEach(this.ignoreUrls::add); + .toList(); + log.info("authorityIgnoreInitialize class [{}] method [{}] urls: {}", beanClass.getCanonicalName(), handlerMethod.getMethod().getName(), methodIgnoreUrls); + if (!methodIgnoreUrls.isEmpty()) { + ignoreUrls.addAll(methodIgnoreUrls); + } } + + log.info("authorityIgnoreInitialize current urls: {}", this.ignoreUrls); + + log.info("authorityIgnoreInitialize end"); } public boolean isIgnoreUrl(HttpServletRequest request) { diff --git a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/Jwt.java b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/Jwt.java index e77de70..207ff48 100644 --- a/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/Jwt.java +++ b/dolphin-commons/dolphin-common-security/src/main/java/day/gitlab/dolphin/common/security/jwt/Jwt.java @@ -1,5 +1,6 @@ package day.gitlab.dolphin.common.security.jwt; +import cn.hutool.v7.crypto.digest.DigestUtil; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.security.Keys; @@ -64,7 +65,7 @@ public class Jwt { } private SecretKey getSigningKey() { - byte[] keyBytes = secret.getBytes(StandardCharsets.UTF_8); + byte[] keyBytes = DigestUtil.sha256(secret); return Keys.hmacShaKeyFor(keyBytes); } } diff --git a/dolphin-compose/pom.xml b/dolphin-compose/pom.xml index 1ef58f7..d1d55a9 100644 --- a/dolphin-compose/pom.xml +++ b/dolphin-compose/pom.xml @@ -15,7 +15,7 @@ day.gitlab - dolphin-common-security + dolphin-module-core ${project.version} @@ -23,6 +23,11 @@ dolphin-module-rbac ${project.version} + + day.gitlab + dolphin-module-auth + ${project.version} + org.springframework.boot @@ -52,6 +57,19 @@ postgresql runtime + + + io.jsonwebtoken + jjwt-api + + + io.jsonwebtoken + jjwt-impl + + + io.jsonwebtoken + jjwt-jackson + org.projectlombok diff --git a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/entity/dto/LoginDTO.java b/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/entity/dto/LoginDTO.java deleted file mode 100644 index c867800..0000000 --- a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/entity/dto/LoginDTO.java +++ /dev/null @@ -1,11 +0,0 @@ -package day.gitlab.dolphin.authorize.entity.dto; - -import lombok.Data; - -@Data -public class LoginDTO { - - private String username; - - private String password; -} diff --git a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/entity/vo/LoginVO.java b/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/entity/vo/LoginVO.java deleted file mode 100644 index 18b8e66..0000000 --- a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/entity/vo/LoginVO.java +++ /dev/null @@ -1,11 +0,0 @@ -package day.gitlab.dolphin.authorize.entity.vo; - -import lombok.Data; - -@Data -public class LoginVO { - - private String accessToken; - - private String refreshToken; -} diff --git a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/service/AuthorizeService.java b/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/service/AuthorizeService.java deleted file mode 100644 index ff0dff6..0000000 --- a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/service/AuthorizeService.java +++ /dev/null @@ -1,10 +0,0 @@ -package day.gitlab.dolphin.authorize.service; - -import day.gitlab.dolphin.authorize.entity.dto.LoginDTO; -import day.gitlab.dolphin.authorize.entity.vo.LoginVO; -import day.gitlab.dolphin.common.security.AuthenticationProvider; - -public interface AuthorizeService extends AuthenticationProvider { - - LoginVO login(LoginDTO loginDTO); -} diff --git a/dolphin-modules/dolphin-module-auth/pom.xml b/dolphin-modules/dolphin-module-auth/pom.xml new file mode 100644 index 0000000..cca468d --- /dev/null +++ b/dolphin-modules/dolphin-module-auth/pom.xml @@ -0,0 +1,65 @@ + + + 4.0.0 + + day.gitlab + dolphin-modules + 0.0.1-SNAPSHOT + + + dolphin-module-auth + jar + + + + + day.gitlab + dolphin-common-security + ${project.version} + + + day.gitlab + dolphin-common-mybatis + ${project.version} + + + day.gitlab + dolphin-module-rbac + ${project.version} + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-jdbc + + + + com.mybatis-flex + mybatis-flex-spring-boot3-starter + + + + org.projectlombok + lombok + true + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + diff --git a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/controller/AuthorizeController.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java similarity index 61% rename from dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/controller/AuthorizeController.java rename to dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java index df33daf..5957b8f 100644 --- a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/controller/AuthorizeController.java +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/controller/AuthController.java @@ -1,7 +1,7 @@ -package day.gitlab.dolphin.authorize.controller; +package day.gitlab.dolphin.auth.controller; -import day.gitlab.dolphin.authorize.entity.dto.LoginDTO; -import day.gitlab.dolphin.authorize.service.AuthorizeService; +import day.gitlab.dolphin.auth.entity.dto.LoginDTO; +import day.gitlab.dolphin.auth.service.AuthService; import day.gitlab.dolphin.common.core.entity.Result; import day.gitlab.dolphin.common.security.annotation.AuthorityIgnore; import jakarta.annotation.Resource; @@ -11,15 +11,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController -@RequestMapping("/authorize") -public class AuthorizeController { +@RequestMapping("/auth") +public class AuthController { @Resource - private AuthorizeService authorizeService; + private AuthService authService; @AuthorityIgnore @PostMapping("/login") public Result login(@RequestBody LoginDTO loginDTO) { - return Result.success(authorizeService.login(loginDTO)); + return Result.success(authService.login(loginDTO)); } } diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/dto/LoginDTO.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/dto/LoginDTO.java new file mode 100644 index 0000000..231658e --- /dev/null +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/dto/LoginDTO.java @@ -0,0 +1,14 @@ +package day.gitlab.dolphin.auth.entity.dto; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class LoginDTO { + + @NotNull + private String username; + + @NotNull + private String password; +} diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/vo/LoginVO.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/vo/LoginVO.java new file mode 100644 index 0000000..6ee1acf --- /dev/null +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/entity/vo/LoginVO.java @@ -0,0 +1,17 @@ +package day.gitlab.dolphin.auth.entity.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class LoginVO { + + private String accessToken; + + private String refreshToken; +} diff --git a/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java new file mode 100644 index 0000000..2735034 --- /dev/null +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/AuthService.java @@ -0,0 +1,9 @@ +package day.gitlab.dolphin.auth.service; + +import day.gitlab.dolphin.auth.entity.dto.LoginDTO; +import day.gitlab.dolphin.auth.entity.vo.LoginVO; + +public interface AuthService { + + LoginVO login(LoginDTO loginDTO); +} diff --git a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/service/impl/AuthorizeServiceImpl.java b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java similarity index 57% rename from dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/service/impl/AuthorizeServiceImpl.java rename to dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java index b09ce1b..cfa0175 100644 --- a/dolphin-compose/src/main/java/day/gitlab/dolphin/authorize/service/impl/AuthorizeServiceImpl.java +++ b/dolphin-modules/dolphin-module-auth/src/main/java/day/gitlab/dolphin/auth/service/impl/AuthServiceImpl.java @@ -1,16 +1,16 @@ -package day.gitlab.dolphin.authorize.service.impl; +package day.gitlab.dolphin.auth.service.impl; import cn.hutool.v7.crypto.digest.BCrypt; -import com.mybatisflex.core.query.QueryCondition; -import day.gitlab.dolphin.authorize.entity.dto.LoginDTO; -import day.gitlab.dolphin.authorize.entity.vo.LoginVO; -import day.gitlab.dolphin.authorize.service.AuthorizeService; +import day.gitlab.dolphin.auth.entity.dto.LoginDTO; +import day.gitlab.dolphin.auth.entity.vo.LoginVO; +import day.gitlab.dolphin.auth.service.AuthService; import day.gitlab.dolphin.common.core.exception.BusinessException; +import day.gitlab.dolphin.common.security.AuthenticationProvider; import day.gitlab.dolphin.common.security.UserPrincipal; import day.gitlab.dolphin.common.security.jwt.JwtInfo; +import day.gitlab.dolphin.rbac.constants.UserEnabled; import day.gitlab.dolphin.rbac.entity.Role; import day.gitlab.dolphin.rbac.entity.User; -import day.gitlab.dolphin.rbac.entity.table.UserTableDef; import day.gitlab.dolphin.rbac.mapper.UserMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; @@ -20,7 +20,7 @@ import java.util.List; import java.util.stream.Collectors; @Service -public class AuthorizeServiceImpl implements AuthorizeService { +public class AuthServiceImpl implements AuthService, AuthenticationProvider { @Resource private UserMapper userMapper; @@ -28,6 +28,22 @@ public class AuthorizeServiceImpl implements AuthorizeService { @Resource private JwtInfo jwtInfo; + @Override + public LoginVO login(LoginDTO loginDTO) { + User dbUser = userMapper.findByUsername(loginDTO.getUsername()); + if (dbUser == null || !BCrypt.checkpw(loginDTO.getPassword(), dbUser.getPassword())) { + throw new BusinessException("Username or password is incorrect"); + } + if (!UserEnabled.ENABLED.equals(dbUser.getEnabled())) { + throw new BusinessException("User is not enabled"); + } + + return LoginVO.builder() + .accessToken(jwtInfo.generateAccessToken(dbUser.getId())) + .refreshToken(jwtInfo.generateRefreshToken(dbUser.getId())) + .build(); + } + @Override public UserPrincipal getUserPrincipal(String userId) { User user = userMapper.selectOneById(userId); @@ -50,22 +66,4 @@ public class AuthorizeServiceImpl implements AuthorizeService { return roles.stream().map(Role::getCode).collect(Collectors.toList()); } - - @Override - public LoginVO login(LoginDTO loginDTO) { - QueryCondition queryCondition = UserTableDef.USER.USERNAME.eq(loginDTO.getUsername()); - User user = userMapper.selectOneByCondition(queryCondition); - - if (user == null || !BCrypt.checkpw(loginDTO.getPassword(), user.getPassword())) { - throw new BusinessException("User name or password is incorrect"); - } - if (!"1".equalsIgnoreCase(user.getEnabled())) { - throw new BusinessException("User has been disabled"); - } - - LoginVO loginVO = new LoginVO(); - loginVO.setAccessToken(jwtInfo.generateAccessToken(user.getId())); - loginVO.setRefreshToken(jwtInfo.generateRefreshToken(user.getId())); - return loginVO; - } } diff --git a/dolphin-modules/dolphin-module-core/pom.xml b/dolphin-modules/dolphin-module-core/pom.xml index 0dd3670..1344611 100644 --- a/dolphin-modules/dolphin-module-core/pom.xml +++ b/dolphin-modules/dolphin-module-core/pom.xml @@ -12,6 +12,7 @@ jar + day.gitlab dolphin-common-security @@ -22,20 +23,25 @@ dolphin-common-mybatis ${project.version} - + org.springframework.boot spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-validation + org.springframework.boot spring-boot-starter-jdbc + com.mybatis-flex mybatis-flex-spring-boot3-starter - + org.projectlombok lombok diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java index 0c89c81..ce87921 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/Dictionary.java @@ -7,8 +7,10 @@ import java.sql.Timestamp; import java.io.Serial; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 字典 实体类。 @@ -18,6 +20,8 @@ import lombok.Data; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @Table("sys_core_dictionary") public class Dictionary implements Serializable { diff --git a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/DictionaryItem.java b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/DictionaryItem.java index 74bbcf4..a5aadd2 100644 --- a/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/DictionaryItem.java +++ b/dolphin-modules/dolphin-module-core/src/main/java/day/gitlab/dolphin/core/entity/DictionaryItem.java @@ -7,8 +7,10 @@ import java.sql.Timestamp; import java.io.Serial; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 字典项 实体类。 @@ -18,6 +20,8 @@ import lombok.Data; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @Table("sys_core_dictionary_item") public class DictionaryItem implements Serializable { diff --git a/dolphin-modules/dolphin-module-rbac/pom.xml b/dolphin-modules/dolphin-module-rbac/pom.xml index 6041428..690eade 100644 --- a/dolphin-modules/dolphin-module-rbac/pom.xml +++ b/dolphin-modules/dolphin-module-rbac/pom.xml @@ -12,12 +12,36 @@ jar + day.gitlab - dolphin-module-core + dolphin-common-security ${project.version} - + + day.gitlab + dolphin-common-mybatis + ${project.version} + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-jdbc + + + + com.mybatis-flex + mybatis-flex-spring-boot3-starter + + org.projectlombok lombok diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/constants/UserEnabled.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/constants/UserEnabled.java new file mode 100644 index 0000000..0b1f5a1 --- /dev/null +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/constants/UserEnabled.java @@ -0,0 +1,8 @@ +package day.gitlab.dolphin.rbac.constants; + +public class UserEnabled { + + public static final String ENABLED = "1"; + + public static final String DISABLED = "0"; +} diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Department.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Department.java index b54323c..8556800 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Department.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Department.java @@ -7,8 +7,10 @@ import java.sql.Timestamp; import java.io.Serial; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 部门表 实体类。 @@ -18,6 +20,8 @@ import lombok.Data; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @Table("sys_rbac_department") public class Department implements Serializable { diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Region.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Region.java index a2535e5..e9f6436 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Region.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Region.java @@ -7,8 +7,10 @@ import java.sql.Timestamp; import java.io.Serial; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 区划项 实体类。 @@ -18,6 +20,8 @@ import lombok.Data; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @Table("sys_rbac_region") public class Region implements Serializable { diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Role.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Role.java index 778d4c1..6e8c01c 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Role.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/Role.java @@ -7,8 +7,10 @@ import java.sql.Timestamp; import java.io.Serial; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 角色表 实体类。 @@ -18,6 +20,8 @@ import lombok.Data; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @Table("sys_rbac_role") public class Role implements Serializable { diff --git a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/User.java b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/User.java index c9d7e3e..b7cfe5d 100644 --- a/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/User.java +++ b/dolphin-modules/dolphin-module-rbac/src/main/java/day/gitlab/dolphin/rbac/entity/User.java @@ -9,8 +9,10 @@ import java.sql.Timestamp; import java.io.Serial; import java.util.List; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 用户表 实体类。 @@ -20,6 +22,8 @@ import lombok.Data; */ @Data @Builder +@NoArgsConstructor +@AllArgsConstructor @Table("sys_rbac_user") public class User implements Serializable { diff --git a/dolphin-modules/pom.xml b/dolphin-modules/pom.xml index 4fa272e..19a6dbc 100644 --- a/dolphin-modules/pom.xml +++ b/dolphin-modules/pom.xml @@ -14,5 +14,6 @@ dolphin-module-core dolphin-module-rbac + dolphin-module-auth