MerchantBusinessEntryAccessTest.java 1.5 KB

1234567891011121314151617181920212223242526272829303132
  1. package com.ruoyi.app.mendian;
  2. import com.ruoyi.system.utils.Auth;
  3. import org.junit.jupiter.api.Test;
  4. import org.springframework.web.bind.annotation.RequestHeader;
  5. import java.lang.reflect.Method;
  6. import java.util.Arrays;
  7. import static org.junit.jupiter.api.Assertions.*;
  8. /** 防止旧管理入口绕过登录;业务授权回归另覆盖伪造门店和记录 ID。 */
  9. class MerchantBusinessEntryAccessTest {
  10. @Test
  11. void managementMethodsRequireAuthenticatedToken() {
  12. assertProtected(OperatingHoursController.class, "addHours", "setHours", "delHours");
  13. assertProtected(ShPosReviewController.class, "list", "getInfo", "edit", "remove");
  14. assertProtected(ShQuanyiController.class, "list", "getInfo", "add", "edit", "remove");
  15. assertProtected(ShSalesPromotionController.class, "list", "getInfo", "add", "edit", "remove");
  16. assertProtected(ShindexController.class, "getshindex");
  17. }
  18. private void assertProtected(Class<?> controller, String... names) {
  19. for (String name : names) {
  20. Method method = Arrays.stream(controller.getDeclaredMethods())
  21. .filter(m -> m.getName().equals(name)).findFirst().orElseThrow();
  22. assertNotNull(method.getAnnotation(Auth.class), controller.getSimpleName() + "." + name);
  23. assertTrue(Arrays.stream(method.getParameters()).anyMatch(p ->
  24. p.getType() == String.class && p.isAnnotationPresent(RequestHeader.class)), name);
  25. }
  26. }
  27. }