[KEYCLOAK-18111] - Error when processing path without associated resource
This commit is contained in:
parent
c49dbd66fa
commit
9ebbc7673c
3 changed files with 32 additions and 1 deletions
|
@ -287,7 +287,7 @@ public class PolicyEnforcer {
|
||||||
enforcementMode = pathConfig.getEnforcementMode();
|
enforcementMode = pathConfig.getEnforcementMode();
|
||||||
} else {
|
} else {
|
||||||
for (PathConfig existingPath : paths.values()) {
|
for (PathConfig existingPath : paths.values()) {
|
||||||
if (existingPath.getId().equals(targetResource.getId())
|
if (targetResource.getId().equals(existingPath.getId())
|
||||||
&& existingPath.isStatic()
|
&& existingPath.isStatic()
|
||||||
&& !PolicyEnforcerConfig.EnforcementMode.DISABLED.equals(existingPath.getEnforcementMode())) {
|
&& !PolicyEnforcerConfig.EnforcementMode.DISABLED.equals(existingPath.getEnforcementMode())) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -621,6 +621,18 @@ public class PolicyEnforcerTest extends AbstractKeycloakTest {
|
||||||
|
|
||||||
assertEquals(200, policyEnforcer.getPathMatcher().getPathCache().size());
|
assertEquals(200, policyEnforcer.getPathMatcher().getPathCache().size());
|
||||||
assertEquals(0, policyEnforcer.getPaths().size());
|
assertEquals(0, policyEnforcer.getPaths().size());
|
||||||
|
|
||||||
|
ResourceRepresentation resource = clientResource.authorization().resources()
|
||||||
|
.findByName("Root").get(0);
|
||||||
|
|
||||||
|
clientResource.authorization().resources().resource(resource.getId()).remove();
|
||||||
|
|
||||||
|
deployment = KeycloakDeploymentBuilder.build(getAdapterConfiguration("enforcer-lazyload-with-paths.json"));
|
||||||
|
policyEnforcer = deployment.getPolicyEnforcer();
|
||||||
|
|
||||||
|
AuthorizationContext context = policyEnforcer.enforce(createHttpFacade("/api/0", token));
|
||||||
|
|
||||||
|
assertTrue(context.isGranted());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initAuthorizationSettings(ClientResource clientResource) {
|
private void initAuthorizationSettings(ClientResource clientResource) {
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"realm": "authz-test",
|
||||||
|
"auth-server-url": "http://localhost:8180/auth",
|
||||||
|
"ssl-required": "external",
|
||||||
|
"resource": "resource-server-test",
|
||||||
|
"credentials": {
|
||||||
|
"secret": "secret"
|
||||||
|
},
|
||||||
|
"bearer-only": true,
|
||||||
|
"policy-enforcer": {
|
||||||
|
"lazy-load-paths": true,
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"path": "/disabled",
|
||||||
|
"enforcement-mode": "DISABLED"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue