2007-11-29

OpenBSD och /dev/urandom

Råkade igår ut för ett konstigt problem med Java på OpenBSD. Webbapplikationen jag utvecklat gick inte att starta pga följande fel (från felloggen):

java.security.ProviderException: setSeed() failed
at sun.security.provider.NativePRNG$RandomIO.implSetSeed(NativePRNG.java:223)
at sun.security.provider.NativePRNG$RandomIO.access$100(NativePRNG.java:108)
at sun.security.provider.NativePRNG.engineSetSeed(NativePRNG.java:92)
at java.security.SecureRandom.setSeed(SecureRandom.java:376)
...
Caused by: java.io.IOException: Device not configured
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:247)
at sun.security.provider.NativePRNG$RandomIO.implSetSeed(NativePRNG.java:221)
... 71 more

Efter många timmars felsökning och sökning kom jag fram till följande lösning:

  • Ändra i filen JAVA_HOME/jre/lib/security/java.security:
    Före: securerandom.source=file:/dev/urandom
    Efter: securerandom.source=file:/dev/srandom
  • Starta om Tomcat
Man lär så länge man lever...

No comments: