Policies Are Aborted When OAG Filter Fails With A Java Exception
(Doc ID 2032531.1)
Last updated on AUGUST 01, 2023
Applies to:
Oracle API Gateway - Version 11.1.2.1.0 and laterInformation in this document applies to any platform.
Goal
An Oracle API Gateway (OAG) filter fails with a Java exception.
The failure path of the filter which failed then is not entered, rather, the policy is aborted.
How can this failure of the filter be handled?
In the example messages below, an HTTP Basic Authentication filter fails with a com.vordel.circuit.authn.HTTP401Exception.
DEBUG <TIMESTAMP> [<THREAD ID>] run circuit "<POLICY>"...
DEBUG <TIMESTAMP> [<THREAD ID>] run filter [HTTP Basic] {
DEBUG <TIMESTAMP> [<THREAD ID>] HttpBasicFilter.invoke: Send 401 exception
DEBUG <TIMESTAMP> [<THREAD ID>] 401 Exception
DEBUG <TIMESTAMP> [<THREAD ID>] } = 2, filter [HTTP Basic]
DEBUG <TIMESTAMP> [<THREAD ID>] Filter [HTTP Basic] completes in 0 milliseconds.
DEBUG <TIMESTAMP> [<THREAD ID>] ..."<POLICY>" complete.
DEBUG <TIMESTAMP> [<THREAD ID>] HTTP Basic
DEBUG <TIMESTAMP> [<THREAD ID>] Policy '<POLICY>' {
DEBUG <TIMESTAMP> [<THREAD ID>] Filter 'HTTP Basic' Status: ABORTED
DEBUG <TIMESTAMP> [<THREAD ID>] }
DEBUG <TIMESTAMP> [<THREAD ID>] 401 Exception:
com.vordel.circuit.authn.HTTP401Exception: 401 Exception
at com.vordel.security.auth.HttpBasicAuthN.getUserCredentialsFromRequest(HttpBasicAuthN.java:53)
at com.vordel.security.auth.HttpBasicAuthN.authenticate(HttpBasicAuthN.java:26)
at com.vordel.circuit.authn.HttpProcessor.performAuthentication(HttpProcessor.java:84)
at com.vordel.circuit.authn.HttpBasicProcessor.invoke(HttpBasicProcessor.java:41)
at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:150)
at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.java:42)
at com.vordel.circuit.InvocationEngine.recordCircuitInvocation(InvocationEngine.java:276)
at com.vordel.circuit.InvocationEngine.processMessage(InvocationEngine.java:239)
at com.vordel.circuit.SyntheticCircuitChainProcessor.invoke(SyntheticCircuitChainProcessor.java:64)
at com.vordel.dwe.http.HTTPPlugin.processRequest(HTTPPlugin.java:351)
at com.vordel.dwe.http.HTTPPlugin.invokeDispose(HTTPPlugin.java:359)
at com.vordel.dwe.http.HTTPPlugin.invoke(HTTPPlugin.java:135)
DEBUG <TIMESTAMP> [<THREAD ID>] run filter [HTTP Basic] {
DEBUG <TIMESTAMP> [<THREAD ID>] HttpBasicFilter.invoke: Send 401 exception
DEBUG <TIMESTAMP> [<THREAD ID>] 401 Exception
DEBUG <TIMESTAMP> [<THREAD ID>] } = 2, filter [HTTP Basic]
DEBUG <TIMESTAMP> [<THREAD ID>] Filter [HTTP Basic] completes in 0 milliseconds.
DEBUG <TIMESTAMP> [<THREAD ID>] ..."<POLICY>" complete.
DEBUG <TIMESTAMP> [<THREAD ID>] HTTP Basic
DEBUG <TIMESTAMP> [<THREAD ID>] Policy '<POLICY>' {
DEBUG <TIMESTAMP> [<THREAD ID>] Filter 'HTTP Basic' Status: ABORTED
DEBUG <TIMESTAMP> [<THREAD ID>] }
DEBUG <TIMESTAMP> [<THREAD ID>] 401 Exception:
com.vordel.circuit.authn.HTTP401Exception: 401 Exception
at com.vordel.security.auth.HttpBasicAuthN.getUserCredentialsFromRequest(HttpBasicAuthN.java:53)
at com.vordel.security.auth.HttpBasicAuthN.authenticate(HttpBasicAuthN.java:26)
at com.vordel.circuit.authn.HttpProcessor.performAuthentication(HttpProcessor.java:84)
at com.vordel.circuit.authn.HttpBasicProcessor.invoke(HttpBasicProcessor.java:41)
at com.vordel.circuit.InvocationEngine.invokeFilter(InvocationEngine.java:150)
at com.vordel.circuit.InvocationEngine.invokeCircuit(InvocationEngine.java:42)
at com.vordel.circuit.InvocationEngine.recordCircuitInvocation(InvocationEngine.java:276)
at com.vordel.circuit.InvocationEngine.processMessage(InvocationEngine.java:239)
at com.vordel.circuit.SyntheticCircuitChainProcessor.invoke(SyntheticCircuitChainProcessor.java:64)
at com.vordel.dwe.http.HTTPPlugin.processRequest(HTTPPlugin.java:351)
at com.vordel.dwe.http.HTTPPlugin.invokeDispose(HTTPPlugin.java:359)
at com.vordel.dwe.http.HTTPPlugin.invoke(HTTPPlugin.java:135)
Solution
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Goal |
Solution |