UserAuthUtil.java 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package com.zswl.dataservice.auth;
  2. import com.zswl.dataservice.model.user.LoginUser;
  3. import jakarta.servlet.http.HttpServletRequest;
  4. import org.springframework.util.AntPathMatcher;
  5. import org.springframework.util.PathMatcher;
  6. import org.springframework.util.StringUtils;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import java.util.Map;
  10. public class UserAuthUtil {
  11. private static PathMatcher pathMatcher = new AntPathMatcher();
  12. public static boolean isFree(AuthSettings authSettings, HttpServletRequest request) {
  13. String path = request.getRequestURI();
  14. String method = request.getMethod();
  15. List<Map<String, String>> freeUrls = authSettings.getFreeUrls();
  16. if (freeUrls != null) {
  17. for (Map<String, String> kv : freeUrls) {
  18. String path0 = kv.get("path");
  19. String method0 = kv.get("method");
  20. if (pathMatcher.match(path0, path)) {
  21. if (method0.indexOf(method) >= 0) {
  22. return true;
  23. }
  24. }
  25. }
  26. }
  27. return false;
  28. }
  29. public static boolean isCodeValidate(AuthSettings authSettings, HttpServletRequest request) {
  30. String path = request.getRequestURI();
  31. String method = request.getMethod();
  32. List<Map<String, String>> codeValidateUrls = authSettings.getCodeValidateUrls();
  33. if (codeValidateUrls != null) {
  34. for (Map<String, String> kv : codeValidateUrls) {
  35. String path0 = kv.get("path");
  36. String method0 = kv.get("method");
  37. if (pathMatcher.match(path0, path)) {
  38. if (method0.indexOf(method) >= 0) {
  39. return true;
  40. }
  41. }
  42. }
  43. }
  44. return false;
  45. }
  46. /**
  47. * 模拟权限校验, 可以根据自己项目需要定制不同的策略,如查询数据库获取具体的菜单url或者角色等等.
  48. *
  49. * @param user
  50. */
  51. public static boolean verify(LoginUser user, HttpServletRequest request) {
  52. String url = request.getHeader("x-user-serviceName");
  53. if (StringUtils.isEmpty(user)) {
  54. return false;
  55. } else {
  56. List<String> str = new ArrayList<String>();//user.getAllowPermissionService();
  57. for (String permissionService : str) {
  58. if (url.equalsIgnoreCase(permissionService)) {
  59. return true;
  60. }
  61. }
  62. return false;
  63. }
  64. }
  65. /**
  66. * 模拟权限赋值, 可以根据自己项目需要定制不同的策略,如查询数据库获取具体的菜单url或者角色等等.
  67. *
  68. * @param user
  69. */
  70. public static void permission(LoginUser user) {
  71. if (user.getLoginName().equals("admin")) {
  72. List allowPermissionService = new ArrayList();
  73. allowPermissionService.add("client-service");
  74. allowPermissionService.add("provider-service");
  75. //user.setAllowPermissionService(allowPermissionService);
  76. } else if (user.getLoginName().equals("spring")) {
  77. List allowPermissionService = new ArrayList();
  78. allowPermissionService.add("client-service");
  79. //user.setAllowPermissionService(allowPermissionService);
  80. } else {
  81. List allowPermissionService = new ArrayList();
  82. //user.setAllowPermissionService(allowPermissionService);
  83. }
  84. }
  85. }