public static Map<ConfigKey<String>, String> finalAndOriginalSpecs( String finalSpec, Object... sourcesForOriginalSpec) { // yuck!: TODO should clean up how these things get passed around Map<ConfigKey<String>, String> result = MutableMap.of(); if (finalSpec != null) result.put(LocationInternal.FINAL_SPEC, finalSpec); String originalSpec = null; for (Object source : sourcesForOriginalSpec) { if (source instanceof CharSequence) originalSpec = source.toString(); else if (source instanceof Map) { if (originalSpec == null) originalSpec = Strings.toString(((Map<?, ?>) source).get(LocationInternal.ORIGINAL_SPEC)); if (originalSpec == null) originalSpec = Strings.toString(((Map<?, ?>) source).get(LocationInternal.ORIGINAL_SPEC.getName())); } if (originalSpec != null) break; } if (originalSpec == null) originalSpec = finalSpec; if (originalSpec != null) result.put(LocationInternal.ORIGINAL_SPEC, originalSpec); return result; }
@Override public boolean isAuthenticated(HttpSession session) { if (session == null) return false; Object value = session.getAttribute(getAuthenticationKey()); return Strings.isNonBlank(Strings.toString(value)); }