import cn.reghao.bnt.web.WebApplication;
import cn.reghao.bnt.web.admin.controller.LoginController;
import cn.reghao.bnt.web.admin.db.repository.MenuRepository;
import cn.reghao.bnt.web.admin.db.repository.RoleRepository;
import cn.reghao.bnt.web.admin.db.repository.UserRepository;
import cn.reghao.bnt.web.admin.model.constant.MenuType;
import cn.reghao.bnt.web.admin.model.constant.RoleType;
import cn.reghao.bnt.web.admin.model.po.Menu;
import cn.reghao.bnt.web.admin.model.po.Role;
import cn.reghao.bnt.web.admin.model.po.User;
import cn.reghao.bnt.web.admin.service.AccountService;
import cn.reghao.bnt.web.admin.service.AccountSessionService;
import cn.reghao.bnt.web.admin.service.MenuService;
import cn.reghao.bnt.web.config.web.exception.ControllerErrorHandler;
import cn.reghao.jutil.jdk.security.RandomString;
import io.swagger.v3.oas.annotations.Operation;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext;
import org.springframework.context.ApplicationContext;
import org.springframework.data.domain.PageRequest;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.session.jdbc.JdbcIndexedSessionRepository;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition;
import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author reghao
* @date 2025-09-30 16:03:44
*/
@Slf4j
@ActiveProfiles("dev")
@SpringBootTest(classes = WebApplication.class)
public class RbacTest {
@Autowired
UserRepository userRepository;
@Autowired
private PasswordEncoder passwordEncoder;
public void updatePassword() {
int userId = 1;
User user = userRepository.findById(userId).orElse(null);
if (user == null) {
return;
}
String newPassword = "admin123456";
String newSalt = RandomString.getSalt(64);
String encodedNewPasswd = passwordEncoder.encode(newPassword + newSalt);
user.setEncodedPassword(encodedNewPasswd);
user.setSalt(newSalt);
userRepository.save(user);
}
@Autowired
MenuService menuService;
@Autowired
MenuRepository menuRepository;
@Autowired
ApplicationContext applicationContext;
@Test
public void menuTest() {
List