import static org.onap.aaf.auth.rserv.HttpMethods.GET;
-import java.io.File;
import java.io.IOException;
import javax.servlet.Filter;
public class AAF_FS extends AbsService<AuthzEnv, AuthzTrans> {
- public AAF_FS(final AuthzEnv env) throws APIException, IOException, CadiException {
- super(env.access(),env);
- try {
- ///////////////////////
- // File Server
- ///////////////////////
- // creates StaticSlot, needed for CachingFileAccess, and sets to public Dir
- env.staticSlot(CachingFileAccess.CFA_WEB_PATH,"aaf_public_dir");
+ public AAF_FS(final AuthzEnv env) throws APIException, IOException, CadiException {
+ super(env.access(),env);
+ try {
+ ///////////////////////
+ // File Server
+ ///////////////////////
+ // creates StaticSlot, needed for CachingFileAccess, and sets to public Dir
+ env.staticSlot(CachingFileAccess.CFA_WEB_PATH,"aaf_public_dir");
- CachingFileAccess<AuthzTrans> cfa = new CachingFileAccess<AuthzTrans>(env);
- route(env,GET,"/:key", cfa);
- route(env,GET,"/:key/:cmd", cfa);
- final String aaf_locate_url = access.getProperty(Config.AAF_LOCATE_URL, null);
- if(aaf_locate_url == null) {
- access.printf(Level.WARN, "Redirection requires property %s",Config.AAF_LOCATE_URL);
- } else {
- route(env,GET,"/", new Redirect(this,aaf_locate_url));
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private static class Redirect extends HttpCode<AuthzTrans, AAF_FS> {
- private final String url;
+ CachingFileAccess<AuthzTrans> cfa = new CachingFileAccess<AuthzTrans>(env);
+ route(env,GET,"/:key*", cfa);
+ final String aaf_locate_url = Config.getAAFLocateUrl(access);
+ if (aaf_locate_url == null) {
+ access.printf(Level.WARN, "Redirection requires property %s",Config.AAF_LOCATE_URL);
+ } else {
+ route(env,GET,"/", new Redirect(this,aaf_locate_url));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static class Redirect extends HttpCode<AuthzTrans, AAF_FS> {
+ private final String url;
- public Redirect(AAF_FS context,String url) {
- super(context, "Redirect to HTTP/S");
- this.url = url;
- }
+ public Redirect(AAF_FS context,String url) {
+ super(context, "Redirect to HTTP/S");
+ this.url = url;
+ }
- @Override
- public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
- trans.info().printf("Redirecting %s to HTTP/S %s", req.getRemoteAddr(), req.getLocalAddr());
- resp.sendRedirect(url);
- }
- };
-
- @Override
- public Filter[] filters() throws CadiException, LocatorException {
- return new Filter[] {
- new AuthzTransOnlyFilter(env)
- };
- }
+ @Override
+ public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
+ trans.info().printf("Redirecting %s to HTTP/S %s", req.getRemoteAddr(), req.getLocalAddr());
+ resp.sendRedirect(url);
+ }
+ };
+
+ @Override
+ public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
+ // Note: No TAFs and Lurs on FileServer
+ return new Filter[] {
+ new AuthzTransOnlyFilter(env)
+ };
+ }
- @SuppressWarnings("unchecked")
- @Override
- public Registrant<AuthzEnv>[] registrants(final int port) throws CadiException, LocatorException {
- return new Registrant[] {
- new RemoteRegistrant<AuthzEnv>(aafCon(),app_name,app_version,port)
- };
- }
-
- public static void main(final String[] args) {
- try {
- String propsFile = getArg(AAF_LOG4J_PREFIX, args, "org.osaaf")+".log4j.props";
- String log_dir = getArg(Config.CADI_LOGDIR,args,"./logs");
- String log_level = getArg(Config.CADI_LOGLEVEL,args,"INFO");
- File logs = new File(log_dir);
- if(!logs.isDirectory()) {
- logs.delete();
- }
- if(!logs.exists()) {
- logs.mkdirs();
- }
- Log4JLogIt logIt = new Log4JLogIt(log_dir,log_level,propsFile, "fs");
- PropAccess propAccess = new PropAccess(logIt,args);
-
- AAF_FS service = new AAF_FS(new AuthzEnv(propAccess));
- JettyServiceStarter<AuthzEnv,AuthzTrans> jss = new JettyServiceStarter<AuthzEnv,AuthzTrans>(service);
- jss.insecure().start();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public Registrant<AuthzEnv>[] registrants(final int port) throws CadiException, LocatorException {
+ return new Registrant[] {
+ new RemoteRegistrant<AuthzEnv>(aafCon(),port)
+ };
+ }
+
+ public static void main(final String[] args) {
+ try {
+ Log4JLogIt logIt = new Log4JLogIt(args, "fs");
+ PropAccess propAccess = new PropAccess(logIt,args);
+ try {
+ new JettyServiceStarter<AuthzEnv,AuthzTrans>(
+ new AAF_FS(new AuthzEnv(propAccess)),false)
+ .start();
+ } catch (Exception e) {
+ propAccess.log(e);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}