Bug 31945 - batik: rasterizer -scriptSecurityOff or java.security.AccessControlException
Summary: batik: rasterizer -scriptSecurityOff or java.security.AccessControlException
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: batik-rasterizer (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: viy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-05 11:33 MSK by Vitaly Lipatov
Modified: 2017-11-06 20:28 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2016-04-05 11:33:41 MSK
$ rasterizer --help
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/batik/apps/rasterizer/Main : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Comment 1 viy 2016-04-05 11:47:18 MSK
java 8 надо установить.
Comment 2 Vitaly Lipatov 2016-04-05 15:17:27 MSK
Поставил 1.8:
$ java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)

$ rasterizer 
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/batik/apps/rasterizer/Main : Unsupported major.minor version 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: org.apache.batik.apps.rasterizer.Main. Program will exit.
Comment 3 Vitaly Lipatov 2016-04-05 15:17:55 MSK
$ epmqp java 1.8
java-1.8.0-openjdk-headless-1.8.0.71-alt3_1.b15jpp8
java-1.8.0-openjdk-1.8.0.71-alt3_1.b15jpp8
Comment 4 viy 2016-04-05 16:06:19 MSK
гм. а readlink -r /usr/bin/java ?
и env|grep JRE
env|grep JAVA
?
Comment 5 Vitaly Lipatov 2016-04-05 21:51:55 MSK
(В ответ на комментарий №4)
> гм. а readlink -r /usr/bin/java ?
> и env|grep JRE
> env|grep JAVA
> ?

$ readlink -r /usr/bin/java
readlink: неверный ключ — «r»
По команде «readlink --help» можно получить дополнительную информацию.

[lav@builder64 etersoft]$ env | grep JRE
[lav@builder64 etersoft]$ env | grep JAVA
JAVA_HOME=/usr/lib/jvm/java

[lav@builder64 etersoft]$ epmqf /usr/lib/jvm/java
 $ rpm -qf /usr/lib/jvm/java
предупреждение: файл /usr/lib/jvm/java не принадлежит ни одному из пакетов
Note: /usr/lib/jvm/java is link to /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
 $ rpm -qf /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
java-1.6.0-openjdk-1.6.0.0-alt23_65.1.11jpp6

[lav@builder64 etersoft]$ epmqf java
Note: java is placed as /usr/bin/java
 $ rpm -qf /usr/bin/java
предупреждение: файл /usr/bin/java не принадлежит ни одному из пакетов
Note: /usr/bin/java is link to /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/bin/java
 $ rpm -qf /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/bin/java
java-1.8.0-openjdk-headless-1.8.0.71-alt3_1.b15jpp8


Удалил ещё 
java-1.6.0-openjdk java-1.6.0-openjdk-devel
java-1.6.0-sun java-1.6.0-sun-devel java-1.6.0-sun-headless java-1.6.0-sun-jdbc pike7.6-java

Действительно, через JAVA_HOME, который выставлялся в java-1.6.0, что-то находило левое.

Теперь вот так:
$ rasterizer --help
Exception in thread "main" java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.security.policy" "write")
	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.System.setProperty(System.java:792)
	at org.apache.batik.util.ApplicationSecurityEnforcer.installSecurityManager(ApplicationSecurityEnforcer.java:257)
	at org.apache.batik.util.ApplicationSecurityEnforcer.enforceSecurity(ApplicationSecurityEnforcer.java:173)
	at org.apache.batik.apps.rasterizer.Main.execute(Main.java:922
Comment 6 viy 2016-04-05 22:07:29 MSK
readlink -f /usr/lib/jvm/java/jre/lib/security/*
?
Comment 7 Vitaly Lipatov 2016-04-05 22:37:01 MSK
(В ответ на комментарий №6)
> readlink -f /usr/lib/jvm/java/jre/lib/security/*
> ?

[lav@builder64 ]$ readlink -f /usr/lib/jvm/java/jre/lib/security/*

[lav@builder64 ]$ ls /usr/lib/jvm/java/jre/lib/security/*
ls: невозможно получить доступ к /usr/lib/jvm/java/jre/lib/security/*: Нет такого файла или каталога

Есть похожий каталог только в
java-1.8.0-openjdk-headless: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security

И так:
[lav@builder64 security]$ readlink -f /usr/lib/jvm/jre/lib/security
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security
Comment 8 viy 2016-04-05 22:43:01 MSK
а какое содержимое этих каталогов?
там внутри должны быть симлинки- интересно, куда они указывают.
Comment 9 Vitaly Lipatov 2016-04-06 00:43:53 MSK
(В ответ на комментарий №8)
> а какое содержимое этих каталогов?
> там внутри должны быть симлинки- интересно, куда они указывают.

$ readlink -f /usr/lib/jvm/jre/lib/security/*
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/blacklisted.certs
/etc/pki/java/cacerts
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/java.policy
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/java.security
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/local_policy.jar
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/nss.cfg
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/US_export_policy.jar
Comment 10 Vitaly Lipatov 2016-04-06 00:47:32 MSK
В strace видно, что обращается к
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-1.b15.x86_64/jre/lib/security/java.policy
Comment 11 viy 2016-04-06 01:00:53 MSK
вот так должно запуститься
rasterizer  -scriptSecurityOff
Comment 12 Vitaly Lipatov 2016-04-07 19:56:04 MSK
(В ответ на комментарий №11)
> вот так должно запуститься
> rasterizer  -scriptSecurityOff
Да, так запускается, спасибо.
Но на Fedora запускается сразу без вопросов.
Comment 13 viy 2016-04-07 20:37:57 MSK
Это какой-то баг установки jvm, но еще не пойму, какой :( 
спасибо за report. он воспроизводится в hasher, так что
буду разбираться когда новую сборку буду готовть.