|
|
|
@ -28,9 +28,9 @@ import jakarta.servlet.http.HttpServletRequest; |
|
|
|
import jakarta.servlet.http.HttpServletResponse; |
|
|
|
import jakarta.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.context.ApplicationEventPublisher; |
|
|
|
import org.springframework.context.ApplicationEventPublisher; |
|
|
|
import org.springframework.security.access.AccessDeniedException; |
|
|
|
|
|
|
|
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; |
|
|
|
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; |
|
|
|
import org.springframework.security.authorization.AuthorizationDecision; |
|
|
|
import org.springframework.security.authorization.AuthorizationDecision; |
|
|
|
|
|
|
|
import org.springframework.security.authorization.AuthorizationDeniedException; |
|
|
|
import org.springframework.security.authorization.AuthorizationEventPublisher; |
|
|
|
import org.springframework.security.authorization.AuthorizationEventPublisher; |
|
|
|
import org.springframework.security.authorization.AuthorizationManager; |
|
|
|
import org.springframework.security.authorization.AuthorizationManager; |
|
|
|
import org.springframework.security.authorization.event.AuthorizationDeniedEvent; |
|
|
|
import org.springframework.security.authorization.event.AuthorizationDeniedEvent; |
|
|
|
@ -95,7 +95,7 @@ public class AuthorizationFilter extends GenericFilterBean { |
|
|
|
AuthorizationDecision decision = this.authorizationManager.check(this::getAuthentication, request); |
|
|
|
AuthorizationDecision decision = this.authorizationManager.check(this::getAuthentication, request); |
|
|
|
this.eventPublisher.publishAuthorizationEvent(this::getAuthentication, request, decision); |
|
|
|
this.eventPublisher.publishAuthorizationEvent(this::getAuthentication, request, decision); |
|
|
|
if (decision != null && !decision.isGranted()) { |
|
|
|
if (decision != null && !decision.isGranted()) { |
|
|
|
throw new AccessDeniedException("Access Denied"); |
|
|
|
throw new AuthorizationDeniedException("Access Denied", decision); |
|
|
|
} |
|
|
|
} |
|
|
|
chain.doFilter(request, response); |
|
|
|
chain.doFilter(request, response); |
|
|
|
} |
|
|
|
} |
|
|
|
|