package com.networknt.oauth.code.handler; import com.networknt.body.BodyHandler; import com.networknt.config.Config; import com.networknt.oauth.cache.AuditInfoHandler; import com.networknt.oauth.cache.model.AuditInfo; import com.networknt.oauth.cache.model.Oauth2Service; import io.undertow.server.HttpServerExchange; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CodeAuditHandler extends AuditInfoHandler { static final Logger logger = LoggerFactory.getLogger(CodeAuditHandler.class); private final static String CONFIG = "oauth_code"; private final static OauthCodeConfig oauth_config = (OauthCodeConfig) Config.getInstance().getJsonObjectConfig(CONFIG, OauthCodeConfig.class); protected void processAudit(HttpServerExchange exchange) throws Exception{ if (oauth_config.isEnableAudit() ) { AuditInfo auditInfo = new AuditInfo(); auditInfo.setServiceId(Oauth2Service.CODE); auditInfo.setEndpoint(exchange.getHostName() + exchange.getRelativePath()); auditInfo.setRequestHeader(exchange.getRequestHeaders().toString()); auditInfo.setRequestBody(Config.getInstance().getMapper().writeValueAsString(exchange.getAttachment(BodyHandler.REQUEST_BODY))); auditInfo.setResponseCode(exchange.getStatusCode()); auditInfo.setResponseHeader(exchange.getResponseHeaders().toString()); auditInfo.setResponseBody(Config.getInstance().getMapper().writeValueAsString(exchange.getResponseCookies())); saveAudit(auditInfo); } } }