@Override public void handle(Request req, Response rsp, Route.Chain chain) throws Throwable {
try {
WebContext context = req.require(WebContext.class);
String existingRequestedUrl = (String) context
.getSessionAttribute(Pac4jConstants.REQUESTED_URL);
boolean resetRequestedUrl = excludes.stream()
.filter(it -> !it.endsWith("/**") && req.matches(it))
.findFirst()
.isPresent();
conf.getSecurityLogic()
.perform(context, conf, new Pac4jGrantAccessAdapter(req, rsp, chain),
conf.getHttpActionAdapter(), clients, authorizers, matchers, multiProfile);
/** 2: don't save authentication urls: */
if (resetRequestedUrl && req.ifSession().isPresent()) {
context.setSessionAttribute(Pac4jConstants.REQUESTED_URL, existingRequestedUrl);
}
} catch (TechnicalException x) {
Throwable cause = x.getCause();
if (!(cause instanceof Err)) {
cause = x;
}
throw cause;
}
}