You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Oliver Lietz (JIRA)" <ji...@apache.org> on 2016/01/18 12:52:39 UTC
[jira] [Commented] (FELIX-5148) Framework Security unusable
[ https://issues.apache.org/jira/browse/FELIX-5148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15105187#comment-15105187 ]
Oliver Lietz commented on FELIX-5148:
-------------------------------------
There seems to be a conflict with {{java.io.FilePermission}} and {{java.net.SocketPermission}}.
When using a handcrafted policy file Sling Launchpad fails with same error as above:
{noformat}
grant {
permission java.io.FilePermission "-", "read,write,delete,execute";
permission java.lang.RuntimePermission "*";
permission java.lang.management.ManagementPermission "control";
permission java.lang.reflect.ReflectPermission "*";
permission java.net.NetPermission "*";
permission java.net.SocketPermission "*", "accept,connect,listen,resolve";
permission java.security.SecurityPermission "*";
permission java.util.PropertyPermission "*", "read,write";
permission javax.management.MBeanPermission "*", "*";
permission javax.management.MBeanServerPermission "*";
permission org.osgi.framework.AdaptPermission "*", "adapt";
permission org.osgi.framework.AdminPermission "*";
permission org.osgi.framework.ServicePermission "*", "get,register";
};
{noformat}
{noformat}
[...] *ERROR* [FelixStartLevel] ERROR: Bundle '5' Error starting slinginstall:org.apache.felix.configadmin-1.8.8.jar (java.security.AccessControlException: access denied ("java.io.FilePermission" "/[...]/sling/config" "read"))
java.security.AccessControlException: access denied ("java.io.FilePermission" "/[...]/sling/config" "read")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.security.AccessController.checkPermission(AccessController.java:884)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
at java.io.File.isDirectory(File.java:844)
at org.apache.felix.cm.file.FilePersistenceManager.<init>(FilePersistenceManager.java:335)
at org.apache.felix.cm.impl.ConfigurationManager.start(ConfigurationManager.java:243)
at org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:1709)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:688)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.lang.Thread.run(Thread.java:745)
{noformat}
When removing {{permission java.net.SocketPermission}} from that policy file Sling Launchpad starts up fine but fails when accessing over HTTP of course:
{noformat}
[...] *WARN* [OsgiInstallerImpl] org.eclipse.jetty.util.component.AbstractLifeCycle FAILED ServerConnector@26b1c498{HTTP/1.1}{0.0.0.0:8080}: java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:8080" "listen,resolve")
java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:8080" "listen,resolve")
{noformat}
> Framework Security unusable
> ---------------------------
>
> Key: FELIX-5148
> URL: https://issues.apache.org/jira/browse/FELIX-5148
> Project: Felix
> Issue Type: Bug
> Components: Configuration Admin, Framework Security
> Affects Versions: framework.security-2.4.0, configadmin-1.8.0
> Reporter: Oliver Lietz
>
> While fixing an issue with Sling and RMI (SLING-5375) reported by an user I came across an issue (KARAF-3400) reported by [~achim_nierbeck] for Karaf related to framework security.
> There is also an issue with [Sling's own OSGi launcher Launchpad|https://svn.apache.org/viewvc/sling/trunk/launchpad/builder/] and framework security when using {{org.apache.felix.configadmin}} >= {{1.8.0}}.
> {{all.policy}}:
> {noformat}
> grant {
> permission java.security.AllPermission;
> };
> {noformat}
> Adding {{org.apache.felix/org.apache.felix.framework.security/2.4.0}} to {{boot.txt}} and starting with arguments described on [Framework Security's page|http://felix.apache.org/documentation/subprojects/apache-felix-framework-security.html] (which looks broken) and [{{-Djava.security.manager}}|http://docs.oracle.com/javase/8/docs/technotes/guides/security/spec/security-spec.doc6.html] ([Building Secure OSGi Applications|http://de.slideshare.net/marrs/building-secure-osgi-applications]) throws a {{java.security.AccessControlException}}:
> {noformat}
> java -Djava.security.manager -Djava.security.policy="all.policy" -Dorg.osgi.framework.security="osgi" -jar org.apache.sling.launchpad-9-SNAPSHOT.jar
> {noformat}
> {noformat}
> [...]
> [...] *ERROR* [FelixStartLevel] ERROR: Error starting slinginstall:org.apache.felix.configadmin-1.8.0.jar (java.security.AccessControlException: access denied ("java.io.FilePermission" "/[...]/sling/config" "read"))
> java.security.AccessControlException: access denied ("java.io.FilePermission" "/[...]/sling/config" "read")
> at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
> at java.security.AccessController.checkPermission(AccessController.java:884)
> at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
> at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
> at java.io.File.isDirectory(File.java:844)
> at org.apache.felix.cm.file.FilePersistenceManager.<init>(FilePersistenceManager.java:342)
> at org.apache.felix.cm.impl.ConfigurationManager.start(ConfigurationManager.java:244)
> at org.apache.felix.framework.util.SecureAction$Actions.run(SecureAction.java:1709)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:688)
> at org.apache.felix.framework.Felix.activateBundle(Felix.java:2226)
> at org.apache.felix.framework.Felix.startBundle(Felix.java:2144)
> at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1371)
> at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
> at java.lang.Thread.run(Thread.java:745)
> [...]
> {noformat}
> I had to remove OSGi Subsystems support from {{boot.txt}} when using {{org.apache.felix.configadmin}} {{1.6}}:
> {noformat}
> org.apache.felix/org.apache.felix.coordinator/1.0.0
> org.eclipse.equinox/org.eclipse.equinox.region/1.2.101.v20150831-1342
> org.apache.aries.subsystem/org.apache.aries.subsystem.api/2.0.6
> org.apache.aries.subsystem/org.apache.aries.subsystem.core/2.0.6
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)