X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fservice%2FAAF_Service.java;h=ba4df19b3467fc15d5ef8619dc8258af6dfa4e6b;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=5253513dc1774cda33beb99f869045769b6d0e09;hpb=535a03fb6b15ce3f2e923c71840d43c80f6f6aa1;p=aaf%2Fauthz.git diff --git a/auth/auth-service/src/main/java/org/onap/aaf/auth/service/AAF_Service.java b/auth/auth-service/src/main/java/org/onap/aaf/auth/service/AAF_Service.java index 5253513d..ba4df19b 100644 --- a/auth/auth-service/src/main/java/org/onap/aaf/auth/service/AAF_Service.java +++ b/auth/auth-service/src/main/java/org/onap/aaf/auth/service/AAF_Service.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -25,6 +25,7 @@ import javax.servlet.Filter; import org.onap.aaf.auth.cache.Cache; import org.onap.aaf.auth.dao.CassAccess; +import org.onap.aaf.auth.dao.cass.CacheInfoDAO; import org.onap.aaf.auth.dao.hl.Question; import org.onap.aaf.auth.direct.DirectAAFLur; import org.onap.aaf.auth.direct.DirectAAFUserPass; @@ -78,13 +79,13 @@ public class AAF_Service extends AbsService { private DirectAAFUserPass directAAFUserPass; private final Cluster cluster; //private final OAuthService oauthService; - + /** * Construct AuthzAPI with all the Context Supporting Routes that Authz needs - * + * * @param env - * @param decryptor - * @throws APIException + * @param decryptor + * @throws APIException */ public AAF_Service( final AuthzEnv env) throws Exception { super(env.access(), env); @@ -96,12 +97,14 @@ public class AAF_Service extends AbsService { // Need Question for Security purposes (direct User/Authz Query in Filter) // Start Background Processing - question = new Question(trans, cluster, CassAccess.KEYSPACE, true); - DirectCertIdentity.set(question.certDAO); + question = new Question(trans, cluster, CassAccess.KEYSPACE); + question.startTimers(env); + + DirectCertIdentity.set(question.certDAO()); // Have AAFLocator object Create DirectLocators for Location needs AbsAAFLocator.setCreator(new DirectLocatorCreator(env, question.locateDAO)); - + // Initialize Organizations... otherwise, first pass may miss int org_size = ORGANIZATION.length(); for (String n : env.existingStaticSlotNames()) { @@ -109,16 +112,16 @@ public class AAF_Service extends AbsService { OrganizationFactory.obtain(env, n.substring(org_size)); } } - + // For direct Introspection needs. //oauthService = new OAuthService(trans, question); - + facade = AuthzFacadeFactory.v2_0(env,trans,Data.TYPE.JSON,question); facade_XML = AuthzFacadeFactory.v2_0(env,trans,Data.TYPE.XML,question); directAAFUserPass = new DirectAAFUserPass(trans.env(),question); - + // Print results and cleanup StringBuilder sb = new StringBuilder(); trans.auditTrail(0, sb); @@ -154,9 +157,9 @@ public class AAF_Service extends AbsService { // init functions API_Mgmt.init(this, facade); API_Api.init(this, facade); - + } - + @Override public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException { final String domain = FQI.reverseDomain(access.getProperty(Config.AAF_ROOT_NS,Config.AAF_ROOT_NS_DEF)); @@ -170,7 +173,7 @@ public class AAF_Service extends AbsService { if (additionalTafLurs.length>0) { System.arraycopy(additionalTafLurs, 0, atl, 2, additionalTafLurs.length); } - + return new Filter[] { new AuthzTransFilter(env,aafCon(), new AAFTrustChecker((Env)env), @@ -185,37 +188,47 @@ public class AAF_Service extends AbsService { @SuppressWarnings("unchecked") @Override - public Registrant[] registrants(final int port) throws CadiException { + public Registrant[] registrants(final int actualPort) throws CadiException { return new Registrant[] { - new DirectRegistrar(access,question.locateDAO,app_name,app_interface_version,port) + new DirectRegistrar(access,question.locateDAO, actualPort) }; } + @Override + public void postStartup(final String hostname, final int port) throws APIException { + try { + CacheInfoDAO.startUpdate(env, aafCon().hman(), aafCon().securityInfo().defSS,hostname,port); + } catch (CadiException | LocatorException e) { + throw new APIException(e); + } + } + @Override public void destroy() { Cache.stopTimer(); + CacheInfoDAO.stopUpdate(); if (cluster!=null) { cluster.close(); } super.destroy(); } - + /** * Setup XML and JSON implementations for each supported Version type - * + * * We do this by taking the Code passed in and creating clones of these with the appropriate Facades and properties * to do Versions and Content switches - * + * */ public void route(HttpMethods meth, String path, API api, Code code) throws Exception { - Class respCls = facade.mapper().getClass(api); + Class respCls = facade.mapper().getClass(api); if (respCls==null) throw new Exception("Unknown class associated with " + api.getClass().getName() + ' ' + api.name()); - String application = applicationJSON(respCls, Config.AAF_DEFAULT_VERSION); + String application = applicationJSON(respCls, Config.AAF_DEFAULT_API_VERSION); - route(env,meth,path,code,application,"application/json;version="+Config.AAF_DEFAULT_VERSION,"*/*"); - application = applicationXML(respCls, Config.AAF_DEFAULT_VERSION); - route(env,meth,path,code.clone(facade_XML,false),application,"text/xml;version=Config.AAF_DEFAULT_VERSION"); + route(env,meth,path,code,application,"application/json;version="+Config.AAF_DEFAULT_API_VERSION,"*/*"); + application = applicationXML(respCls, Config.AAF_DEFAULT_API_VERSION); + route(env,meth,path,code.clone(facade_XML,false),application,"text/xml;version="+Config.AAF_DEFAULT_API_VERSION); } /** @@ -225,10 +238,14 @@ public class AAF_Service extends AbsService { try { Log4JLogIt logIt = new Log4JLogIt(args, "authz"); PropAccess propAccess = new PropAccess(logIt,args); - - AbsService service = new AAF_Service(new AuthzEnv(propAccess)); - JettyServiceStarter jss = new JettyServiceStarter(service); - jss.start(); + + try { + new JettyServiceStarter( + new AAF_Service(new AuthzEnv(propAccess)),true) + .start(); + } catch (Exception e) { + propAccess.log(e); + } } catch (Exception e) { e.printStackTrace(); }