|
|
@@ -36,6 +36,9 @@ public class CustomInterceptor implements HandlerInterceptor {
|
|
|
userRoles.put("DELETE", Set.of("ROLE_ADMIN"));
|
|
|
endpointRoles.put("/users", userRoles);
|
|
|
|
|
|
+ Map<String, Set<String>> pdfRoles = new HashMap<>();
|
|
|
+ pdfRoles.put("GET", Set.of("ROLE_USER", "ROLE_MODERATOR", "ROLE_ADMIN"));
|
|
|
+ endpointRoles.put("/pdf", pdfRoles);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -98,6 +101,7 @@ public class CustomInterceptor implements HandlerInterceptor {
|
|
|
return HandlerInterceptor.super.preHandle(request, response, handler);
|
|
|
}
|
|
|
else {
|
|
|
+ System.out.println("nie udało sie zautoryzować xddd");
|
|
|
response.setStatus(HttpStatus.FORBIDDEN.value());
|
|
|
response.getWriter().write("Unauthorized access");
|
|
|
return false;
|
|
|
@@ -129,15 +133,24 @@ public class CustomInterceptor implements HandlerInterceptor {
|
|
|
}
|
|
|
|
|
|
private boolean isAuthorized(String endpoint, String method, Set<String> roles) {
|
|
|
+ // Remove the variable part from the endpoint
|
|
|
+ String mainEndpoint = endpoint.split("/\\d+")[0];
|
|
|
+
|
|
|
System.out.println("Authorization in isAuthorized() method");
|
|
|
- System.out.println(" endpoint: " + endpoint);
|
|
|
+ System.out.println(" endpoint: " + mainEndpoint);
|
|
|
System.out.println(" method: " + method);
|
|
|
System.out.println(" roles: " + roles);
|
|
|
|
|
|
|
|
|
- Map<String, Set<String>> methodRoles = endpointRoles.get(endpoint);
|
|
|
+ Map<String, Set<String>> methodRoles = endpointRoles.get(mainEndpoint);
|
|
|
+
|
|
|
+ System.out.println("methodRoles " + methodRoles);
|
|
|
+
|
|
|
if (methodRoles != null) {
|
|
|
Set<String> requiredRoles = methodRoles.get(method);
|
|
|
+
|
|
|
+ System.out.println("requiredRoles " + requiredRoles);
|
|
|
+
|
|
|
if (requiredRoles != null) {
|
|
|
return !Collections.disjoint(roles, requiredRoles);
|
|
|
}
|
|
|
@@ -145,6 +158,8 @@ public class CustomInterceptor implements HandlerInterceptor {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
|
|
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
|