- 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 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<>(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;
+ }