import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.security.PrivilegedAction;
import java.util.Dictionary;
import java.util.Enumeration;
/** Package utilities */
class KernelUtils implements KernelConstants {
- private final static String OSGI_INSTANCE_AREA = "osgi.instance.area";
- private final static String OSGI_CONFIGURATION_AREA = "osgi.configuration.area";
+ final static String OSGI_INSTANCE_AREA = "osgi.instance.area";
+ final static String OSGI_CONFIGURATION_AREA = "osgi.configuration.area";
static Dictionary<String, ?> asDictionary(Properties props) {
Hashtable<String, Object> hashtable = new Hashtable<String, Object>();
.getAbsoluteFile();
}
+ static Path getOsgiInstancePath(String relativePath) {
+ return Paths.get(getOsgiInstanceUri(relativePath));
+ }
+
static URI getOsgiInstanceUri(String relativePath) {
String osgiInstanceBaseUri = getFrameworkProp(OSGI_INSTANCE_AREA);
- try {
- return new URI(osgiInstanceBaseUri + (relativePath != null ? relativePath : ""));
- } catch (URISyntaxException e) {
- throw new CmsException("Cannot get OSGi instance URI for " + relativePath, e);
- }
+ return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : ""));
}
- static String getOsgiInstancePath(String relativePath) {
- try {
- if (relativePath == null)
- return getOsgiInstanceDir().getCanonicalPath();
- else
- return new File(getOsgiInstanceDir(), relativePath).getCanonicalPath();
- } catch (IOException e) {
- throw new CmsException("Cannot get instance path for " + relativePath, e);
- }
- }
+ // static String getOsgiInstancePath(String relativePath) {
+ // try {
+ // if (relativePath == null)
+ // return getOsgiInstanceDir().getCanonicalPath();
+ // else
+ // return new File(getOsgiInstanceDir(), relativePath).getCanonicalPath();
+ // } catch (IOException e) {
+ // throw new CmsException("Cannot get instance path for " + relativePath,
+ // e);
+ // }
+ // }
static File getOsgiConfigurationFile(String relativePath) {
try {
}
}
- // @Deprecated
- // static void anonymousLogin(AuthenticationManager authenticationManager) {
- // try {
- // List<GrantedAuthorityPrincipal> anonAuthorities = Collections
- // .singletonList(new GrantedAuthorityPrincipal(
- // KernelHeader.ROLE_ANONYMOUS));
- // UserDetails anonUser = new User(KernelHeader.USERNAME_ANONYMOUS,
- // "", true, true, true, true, anonAuthorities);
- // AnonymousAuthenticationToken anonToken = new
- // AnonymousAuthenticationToken(
- // DEFAULT_SECURITY_KEY, anonUser, anonAuthorities);
- // Authentication authentication = authenticationManager
- // .authenticate(anonToken);
- // SecurityContextHolder.getContext()
- // .setAuthentication(authentication);
- // } catch (Exception e) {
- // throw new CmsException("Cannot authenticate", e);
- // }
- // }
-
// HTTP
static void logRequestHeaders(Log log, HttpServletRequest request) {
if (!log.isDebugEnabled())
return getBundleContext(KernelUtils.class);
}
+ private static URI safeUri(String uri) {
+ if (uri == null)
+ throw new CmsException("URI cannot be null");
+ try {
+ return new URI(uri);
+ } catch (URISyntaxException e) {
+ throw new CmsException("Dadly formatted URI " + uri, e);
+ }
+ }
+
private KernelUtils() {
}