优化登录速度

This commit is contained in:
2023-09-09 16:39:57 +08:00
parent 81ee1ec591
commit 05641e72d7
4 changed files with 24 additions and 8 deletions

View File

@@ -78,7 +78,7 @@ public class AuthFilter extends OncePerRequestFilter {
String sessionId = request.getHeader("X-Token");
Optional<ResourceEntity> resource = resourceService.findByCode(getRequestURI(request));
Optional<ResourceEntity> resource = resourceService.findUrl(getRequestURI(request));
if (resource.isEmpty()) {

View File

@@ -17,6 +17,7 @@ import java.util.List;
@Entity
@Comment("资源")
@Slf4j
@Table(indexes = {@Index(name = "idx_resource_type_code", columnList = "type,code", unique = true)})
public class ResourceEntity extends CommonEntity {
@ManyToMany(mappedBy = "resources")

View File

@@ -106,13 +106,13 @@ public class ResourceService extends BaseService<ResourceEntity, ResourceReposit
}
public Optional<ResourceEntity> findByCode(String requestURL) {
public Optional<ResourceEntity> findUrl(String requestURL) {
return
findAll(new Specification<ResourceEntity>() {
@Override
public Predicate toPredicate(Root<ResourceEntity> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
return criteriaBuilder.equal(root.get("code"), requestURL);
return criteriaBuilder.and(criteriaBuilder.equal(root.get("code"), requestURL),criteriaBuilder.equal(root.get("type"), "3"));
}
}).stream().findFirst();

View File

@@ -28,6 +28,7 @@ import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.util.StopWatch;
import java.util.Optional;
@@ -47,19 +48,33 @@ public class UserService extends BaseService<UserEntity, UserRepository> {
@PostConstruct
public void init() {
passwordEncoder = Pbkdf2PasswordEncoder.defaultsForSpringSecurity_v5_8();
passwordEncoder = new Pbkdf2PasswordEncoder("", 8, 10000, 256);;
}
public UserDto create(CreateUserDto request) {
request.setPassword(passwordEncoder.encode(request.getPassword()));
UserEntity entity = mapper.toEntity(request);
StopWatch stopWatch = new StopWatch();
try {
stopWatch.start("encode");
request.setPassword(passwordEncoder.encode(request.getPassword()));
stopWatch.stop();
UserEntity entity = mapper.toEntity(request);
this.repository.save(entity);
return getById(entity.getId());
stopWatch.start("save");
this.repository.save(entity);
stopWatch.stop();
stopWatch.start("getById");
return getById(entity.getId());
} finally {
stopWatch.stop();
log.info(stopWatch.prettyPrint());
}
}