\r
**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%)|[war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%)|[fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%)) based on [%JGIT%][jgit] *released %BUILDDATE%*\r
\r
+- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later\r
- added: IUserService.setup(IStoredSettings) for custom user service implementations\r
\r
issues, binaries, and sources @ [Google Code][googlecode]<br/>\r
### Current Release\r
**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%)|[war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%)|[fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%)) based on [%JGIT%][jgit] *released %BUILDDATE%*\r
\r
+- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later\r
- added: IUserService.setup(IStoredSettings) for custom user service implementations\r
\r
### Older Releases\r
/**\r
* Creates an https connector.\r
* \r
+ * SSL renegotiation will be enabled if the JVM is 1.6.0_22 or later.\r
+ * oracle.com/technetwork/java/javase/documentation/tlsreadme2-176330.html\r
+ * \r
* @param keystore\r
* @param password\r
* @param useNIO\r
SslSocketConnector ssl = new SslSocketConnector();\r
connector = ssl;\r
}\r
- connector.setAllowRenegotiate(false);\r
+ // disable renegotiation unless this is a patched JVM\r
+ boolean allowRenegotiation = false;\r
+ String v = System.getProperty("java.version");\r
+ if (v.startsWith("1.7")) {\r
+ allowRenegotiation = true;\r
+ } else if (v.startsWith("1.6")) {\r
+ // 1.6.0_22 was first release with RFC-5746 implemented fix.\r
+ if (v.indexOf('_') > -1) {\r
+ String b = v.substring(v.indexOf('_') + 1);\r
+ if (Integer.parseInt(b) >= 22) {\r
+ allowRenegotiation = true;\r
+ }\r
+ }\r
+ }\r
+ if (allowRenegotiation) {\r
+ logger.info(" allowing SSL renegotiation on Java " + v);\r
+ }\r
+ connector.setAllowRenegotiate(true);\r
connector.setKeystore(keystore.getAbsolutePath());\r
connector.setPassword(password);\r
connector.setPort(port);\r