X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-core%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fenv%2FAuthzEnv.java;h=497c13d68599166c821f85fc0f5c26180155cafb;hb=12414fe43077e12d7ef711951b1633ad31d73573;hp=300e4087bd0b9642e015d4655f3ec1458a81a894;hpb=67bac2c1c44beab7752b39584553449e1c8a4e94;p=aaf%2Fauthz.git diff --git a/auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzEnv.java b/auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzEnv.java index 300e4087..497c13d6 100644 --- a/auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzEnv.java +++ b/auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzEnv.java @@ -29,14 +29,11 @@ import java.util.Properties; import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.CadiException; import org.onap.aaf.cadi.PropAccess; -import org.onap.aaf.cadi.PropAccess.LogIt; import org.onap.aaf.cadi.Symm; import org.onap.aaf.cadi.config.Config; -import org.onap.aaf.misc.env.APIException; import org.onap.aaf.misc.env.Decryptor; import org.onap.aaf.misc.env.Encryptor; -import org.onap.aaf.misc.env.impl.Log4JLogTarget; -import org.onap.aaf.misc.env.log4j.LogFileNamer; +import org.onap.aaf.misc.env.LogTarget; import org.onap.aaf.misc.rosetta.env.RosettaEnv; @@ -50,261 +47,248 @@ import org.onap.aaf.misc.rosetta.env.RosettaEnv; * */ public class AuthzEnv extends RosettaEnv implements Access { - private long[] times = new long[20]; - private int idx = 0; - private PropAccess access; + private long[] times = new long[20]; + private int idx = 0; + private PropAccess access; - public AuthzEnv() { - super(); - _init(new PropAccess()); - } + public AuthzEnv() { + super(); + _init(new PropAccess()); + } - public AuthzEnv(String ... args) { - super(); - _init(new PropAccess(args)); - } + public AuthzEnv(String ... args) { + super(); + _init(new PropAccess(args)); + } - public AuthzEnv(Properties props) { - super(); - _init(new PropAccess(props)); - } - + public AuthzEnv(Properties props) { + super(); + _init(new PropAccess(props)); + } + - public AuthzEnv(PropAccess pa) { - super(); - _init(pa); - } - - private final void _init(PropAccess pa) { - access = pa; - times = new long[20]; - idx = 0; - } - - private class Log4JLogit implements LogIt { - - @Override - public void push(Level level, Object... elements) { - switch(level) { - case AUDIT: - audit.log(elements); - break; - case DEBUG: - debug.log(elements); - break; - case ERROR: - error.log(elements); - break; - case INFO: - info.log(elements); - break; - case INIT: - init.log(elements); - break; - case NONE: - break; - case WARN: - warn.log(elements); - break; - } - - } - - } + public AuthzEnv(PropAccess pa) { + super(); + _init(pa); + } + + private final void _init(PropAccess pa) { + access = pa; + times = new long[20]; + idx = 0; + fatal = new AccessLogTarget(access, Level.ERROR); + error = fatal; + audit = new AccessLogTarget(access, Level.AUDIT); + init = new AccessLogTarget(access, Level.INIT); + warn = new AccessLogTarget(access, Level.WARN); + info = new AccessLogTarget(access, Level.INFO); + debug = new AccessLogTarget(access, Level.DEBUG); + trace = new AccessLogTarget(access, Level.TRACE); + } + + private class AccessLogTarget implements LogTarget { + private final Level level; + private final Access access; + + public AccessLogTarget(final Access access, final Level level) { + this.level = level; + this.access = access; + } + + @Override + public void log(Object... msgs) { + access.log(level, msgs); + } - @Override - public AuthzTransImpl newTrans() { - synchronized(this) { - times[idx]=System.currentTimeMillis(); - if(++idx>=times.length)idx=0; - } - return new AuthzTransImpl(this); - } + @Override + public void log(Throwable e, Object... msgs) { + Object[] nm = new Object[msgs.length+1]; + System.arraycopy(msgs, 0, nm, 1, msgs.length); + nm[0]=e; + access.log(Level.ERROR, nm); + } - /** - * Create a Trans, but do not include in Weighted Average - * @return - */ - public AuthzTrans newTransNoAvg() { - return new AuthzTransImpl(this); - } + @Override + public boolean isLoggable() { + return access.willLog(level); + } - public long transRate() { - int count = 0; - long pot = 0; - long prev = 0; - for(int i=idx;i0) { - if(prev>0) { - ++count; - pot += times[i]-prev; - } - prev = times[i]; - } - } - for(int i=0;i0) { - if(prev>0) { - ++count; - pot += times[i]-prev; - } - prev = times[i]; - } - } + @Override + public void printf(String fmt, Object... vars) { + access.printf(level, fmt, vars); + } + + } + @Override + public AuthzTransImpl newTrans() { + synchronized(this) { + times[idx]=System.currentTimeMillis(); + if (++idx>=times.length)idx=0; + } + return new AuthzTransImpl(this); + } - return count==0?300000L:pot/count; // Return Weighted Avg, or 5 mins, if none avail. - } - - @Override - public ClassLoader classLoader() { - return getClass().getClassLoader(); - } + /** + * Create a Trans, but do not include in Weighted Average + * @return + */ + public AuthzTrans newTransNoAvg() { + return new AuthzTransImpl(this); + } - @Override - public void load(InputStream is) throws IOException { - access.load(is); - } + public long transRate() { + int count = 0; + long pot = 0; + long prev = 0; + for (int i=idx;i0) { + if (prev>0) { + ++count; + pot += times[i]-prev; + } + prev = times[i]; + } + } + for (int i=0;i0) { + if (prev>0) { + ++count; + pot += times[i]-prev; + } + prev = times[i]; + } + } - @Override - public void log(Level lvl, Object... msgs) { - access.log(lvl, msgs); - } + return count==0?300000L:pot/count; // Return Weighted Avg, or 5 mins, if none avail. + } + + @Override + public ClassLoader classLoader() { + return getClass().getClassLoader(); + } - @Override - public void log(Exception e, Object... msgs) { - access.log(e,msgs); - } + @Override + public void load(InputStream is) throws IOException { + access.load(is); + } - @Override - public void printf(Level level, String fmt, Object... elements) { - access.printf(level, fmt, elements); - } + @Override + public void log(Level lvl, Object... msgs) { + access.log(lvl, msgs); + } - /* (non-Javadoc) - * @see org.onap.aaf.cadi.Access#willLog(org.onap.aaf.cadi.Access.Level) - */ - @Override - public boolean willLog(Level level) { - return access.willLog(level); - } + @Override + public void log(Exception e, Object... msgs) { + access.log(e,msgs); + } - @Override - public void setLogLevel(Level level) { - access.setLogLevel(level); - } + @Override + public void printf(Level level, String fmt, Object... elements) { + access.printf(level, fmt, elements); + } - public void setLog4JNames(String path, String root, String _service, String _audit, String _init, String _trace) throws APIException { - LogFileNamer lfn = new LogFileNamer(root); - if(_service==null) { - throw new APIException("AuthzEnv.setLog4JNames \"_service\" required (as default). Others can be null"); - } - String service=_service=lfn.setAppender(_service); // when name is split, i.e. authz|service, the Appender is "authz", and "service" - String audit=_audit==null?service:lfn.setAppender(_audit); // is part of the log-file name - String init=_init==null?service:lfn.setAppender(_init); - String trace=_trace==null?service:lfn.setAppender(_trace); - //TODO Validate path on Classpath - lfn.configure(path); - super.fatal = new Log4JLogTarget(service,org.apache.log4j.Level.FATAL); - super.error = new Log4JLogTarget(service,org.apache.log4j.Level.ERROR); - super.warn = new Log4JLogTarget(service,org.apache.log4j.Level.WARN); - super.audit = new Log4JLogTarget(audit,org.apache.log4j.Level.WARN); - super.init = new Log4JLogTarget(init,org.apache.log4j.Level.WARN); - super.info = new Log4JLogTarget(service,org.apache.log4j.Level.INFO); - super.debug = new Log4JLogTarget(service,org.apache.log4j.Level.DEBUG); - super.trace = new Log4JLogTarget(trace,org.apache.log4j.Level.TRACE); - - access.set(new Log4JLogit()); - } - - private static final byte[] ENC="enc:".getBytes(); - public String decrypt(String encrypted, final boolean anytext) throws IOException { - if(encrypted==null) { - throw new IOException("Password to be decrypted is null"); - } - if(anytext || encrypted.startsWith("enc:")) { - if(decryptor.equals(Decryptor.NULL) && getProperty(Config.CADI_KEYFILE)!=null) { - final Symm s; - try { - s = Symm.obtain(this); - } catch (CadiException e1) { - throw new IOException(e1); - } - decryptor = new Decryptor() { - private Symm symm = s; - @Override - public String decrypt(String encrypted) { - try { - return (encrypted!=null && (anytext || encrypted.startsWith(Symm.ENC))) - ? symm.depass(encrypted) - : encrypted; - } catch (IOException e) { - return ""; - } - } - }; - encryptor = new Encryptor() { - @Override - public String encrypt(String data) { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try { - baos.write(ENC); - return "enc:"+s.enpass(data); - } catch (IOException e) { - return ""; - } - } - - }; - } - return decryptor.decrypt(encrypted); - } else { - return encrypted; - } - } + /* (non-Javadoc) + * @see org.onap.aaf.cadi.Access#willLog(org.onap.aaf.cadi.Access.Level) + */ + @Override + public boolean willLog(Level level) { + return access.willLog(level); + } - /* (non-Javadoc) - * @see org.onap.aaf.misc.env.impl.BasicEnv#getProperty(java.lang.String) - */ - @Override - public String getProperty(String key) { - return access.getProperty(key); - } + @Override + public void setLogLevel(Level level) { + access.setLogLevel(level); + } + + private static final byte[] ENC="enc:".getBytes(); + public String decrypt(String encrypted, final boolean anytext) throws IOException { + if (encrypted==null) { + throw new IOException("Password to be decrypted is null"); + } + if (anytext || encrypted.startsWith("enc:")) { + if (decryptor.equals(Decryptor.NULL) && getProperty(Config.CADI_KEYFILE)!=null) { + final Symm s; + try { + s = Symm.obtain(this); + } catch (CadiException e1) { + throw new IOException(e1); + } + decryptor = new Decryptor() { + private Symm symm = s; + @Override + public String decrypt(String encrypted) { + try { + return (encrypted!=null && (anytext || encrypted.startsWith(Symm.ENC))) + ? symm.depass(encrypted) + : encrypted; + } catch (IOException e) { + return ""; + } + } + }; + encryptor = new Encryptor() { + @Override + public String encrypt(String data) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try { + baos.write(ENC); + return "enc:"+s.enpass(data); + } catch (IOException e) { + return ""; + } + } + + }; + } + return decryptor.decrypt(encrypted); + } else { + return encrypted; + } + } - /* (non-Javadoc) - * @see org.onap.aaf.misc.env.impl.BasicEnv#getProperties(java.lang.String[]) - */ - @Override - public Properties getProperties(String... filter) { - return access.getProperties(); - } + /* (non-Javadoc) + * @see org.onap.aaf.misc.env.impl.BasicEnv#getProperty(java.lang.String) + */ + @Override + public String getProperty(String key) { + return access.getProperty(key); + } - /* (non-Javadoc) - * @see org.onap.aaf.misc.env.impl.BasicEnv#getProperty(java.lang.String, java.lang.String) - */ - @Override - public String getProperty(String key, String defaultValue) { - return access.getProperty(key, defaultValue); - } + /* (non-Javadoc) + * @see org.onap.aaf.misc.env.impl.BasicEnv#getProperties(java.lang.String[]) + */ + @Override + public Properties getProperties(String... filter) { + return access.getProperties(); + } - /* (non-Javadoc) - * @see org.onap.aaf.misc.env.impl.BasicEnv#setProperty(java.lang.String, java.lang.String) - */ - @Override - public String setProperty(String key, String value) { - access.setProperty(key, value); - return value; - } + /* (non-Javadoc) + * @see org.onap.aaf.misc.env.impl.BasicEnv#getProperty(java.lang.String, java.lang.String) + */ + @Override + public String getProperty(String key, String defaultValue) { + return access.getProperty(key, defaultValue); + } - public PropAccess access() { - return access; - } + /* (non-Javadoc) + * @see org.onap.aaf.misc.env.impl.BasicEnv#setProperty(java.lang.String, java.lang.String) + */ + @Override + public String setProperty(String key, String value) { + access.setProperty(key, value); + return value; + } - /* (non-Javadoc) - * @see org.onap.aaf.cadi.Access#getProperties() - */ - @Override - public Properties getProperties() { - return access.getProperties(); - }; - + public PropAccess access() { + return access; + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.Access#getProperties() + */ + @Override + public Properties getProperties() { + return access.getProperties(); + }; + }