1 /*******************************************************************************
\r
2 * ============LICENSE_START====================================================
\r
4 * * ===========================================================================
\r
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
\r
6 * * ===========================================================================
\r
7 * * Licensed under the Apache License, Version 2.0 (the "License");
\r
8 * * you may not use this file except in compliance with the License.
\r
9 * * You may obtain a copy of the License at
\r
11 * * http://www.apache.org/licenses/LICENSE-2.0
\r
13 * * Unless required by applicable law or agreed to in writing, software
\r
14 * * distributed under the License is distributed on an "AS IS" BASIS,
\r
15 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 * * See the License for the specific language governing permissions and
\r
17 * * limitations under the License.
\r
18 * * ============LICENSE_END====================================================
\r
20 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
\r
22 ******************************************************************************/
\r
23 package com.att.authz.env;
\r
25 import java.security.Principal;
\r
27 import javax.servlet.ServletRequest;
\r
28 import javax.servlet.http.HttpServletRequest;
\r
30 import com.att.cssa.rserv.TransOnlyFilter;
\r
31 import com.att.inno.env.Env;
\r
32 import com.att.inno.env.TimeTaken;
\r
33 import com.att.inno.env.Trans.Metric;
\r
35 public class AuthzTransOnlyFilter extends TransOnlyFilter<AuthzTrans> {
\r
36 private AuthzEnv env;
\r
37 public Metric serviceMetric;
\r
39 public static final int BUCKETSIZE = 2;
\r
41 public AuthzTransOnlyFilter(AuthzEnv env) {
\r
43 serviceMetric = new Metric();
\r
44 serviceMetric.buckets = new float[BUCKETSIZE];
\r
48 protected AuthzTrans newTrans() {
\r
49 return env.newTrans();
\r
53 protected TimeTaken start(AuthzTrans trans, ServletRequest request) {
\r
54 trans.set((HttpServletRequest)request);
\r
55 return trans.start("Trans " + //(context==null?"n/a":context.toString()) +
\r
56 " IP: " + trans.ip() +
\r
57 " Port: " + trans.port()
\r
62 protected void authenticated(AuthzTrans trans, Principal p) {
\r
67 protected void tallyHo(AuthzTrans trans) {
\r
68 // Transaction is done, now post
\r
69 StringBuilder sb = new StringBuilder("AuditTrail\n");
\r
70 // We'll grab sub-metrics for Remote Calls and JSON
\r
71 // IMPORTANT!!! if you add more entries here, change "BUCKETSIZE"!!!
\r
72 Metric m = trans.auditTrail(1, sb, Env.REMOTE,Env.JSON);
\r
73 // Add current Metrics to total metrics
\r
74 serviceMetric.total+= m.total;
\r
75 for(int i=0;i<serviceMetric.buckets.length;++i) {
\r
76 serviceMetric.buckets[i]+=m.buckets[i];
\r
79 sb.append(" Total: ");
\r
81 sb.append(" Remote: ");
\r
82 sb.append(m.buckets[0]);
\r
83 sb.append(" JSON: ");
\r
84 sb.append(m.buckets[1]);
\r
85 trans.info().log(sb);
\r