summaryrefslogtreecommitdiffstats
path: root/src/main/java/com
Commit message (Collapse)AuthorAgeFilesLines
* Update Git clients list on empty repository pageFlorian Zschocke2023-10-1214-24/+24
| | | | | | | | | | | | The page shown for an empty repository lists suggestions for Git clients, mostly GUI ones, and links to their web pages. The TortoiseGit client entry is removed since the URL is no longer valid. The excellent client Fork is added to the closed source clients section. This commit also cleans up some other entries, fixing broken tags, escaping ampersands and removing outdated or wrong information.
* Improve Chinese translation of "fork"Florian Zschocke2023-10-091-17/+17
| | | | | | | The currently used translation of "fork" is ambiguous, using the same word as for "branch". Fixes #1448
* Adjust URLs to gitblit.github.io to point to gitblit-org.github.ioFlorian Zschocke2023-04-031-1/+1
| | | | | Adjust other references to the old 'gitblit' organisation on Github to point to the new 'gitblit-org' organisation.
* fix: Fix broken pushes to ticketsFlorian Zschocke2022-12-073-8/+10
| | | | | | | The update of JGit broke pushes to tickets. The ReceiveCommand now requires all three arguments, oldId, newId and name, to be not null. The ticket code handling pushes to tickets left name and old id as null in certain cases. This is fixed by always providing values.
* fix: Fix incorrect text being copied by copy button on tickets pageFlorian Zschocke2022-12-061-1/+1
| | | | The merge step for using `pt` added the wrong text to the copy button.
* Add french version of Empty Repository pageFlorian Zschocke2022-12-051-0/+60
| | | | Donated by @piradix
* fix: Fix broken _de language fileFlorian Zschocke2022-12-051-2/+2
| | | | | This fixes incorrect encodings in the _de language file which makes the pages crash.
* fix: Correct misaligned images in primary repository URL displayFlorian Zschocke2022-12-051-2/+2
| | | | | | Adding style element `max-width:inherit` as suggested by @piradix, which makes the access restriction icon be part of the URL box again. This fixes #1437
* Replace SWF clippy with clipboard.js on ticket pageFlorian Zschocke2022-12-032-19/+12
| | | | | The ticket page also has some copy-to-clipboard buttons, which get updated to work with JS instead of SWF.
* Add a "Copied" tooltip to the copy-to-clipboard buttonFlorian Zschocke2022-12-033-11/+11
| | | | | | | This is not the ideal version, since the height is too low for the tooltip used for the drop-down menus. Probably has something to do with the container or something. But at least something is there now, even if not the most beautiful.
* Replace SWF clippy with clipboardjs on repository pageFlorian Zschocke2022-11-203-25/+28
| | | | | | | | | | | | | | | Shockwave Flash is dead. But Gitblit still uses it to copy the repository URLs to the clip board. Which doesn't work anymore since no browser uses Flash anymore, so this has degraded disgracefully. Instead, we can use JavaScript to copy directly to the clipboard, now that there are APIs for it. So replace the use of clippy.swf on the repository page with clipboard.js[1]. This right now only has the functionality to copy to clipboard but now visual feedback, yet. This addresses GH issue #1241. [1] https://clipboardjs.com
* Fix issue with not serialisable ed25519 SSH keysFlorian Zschocke2022-11-162-1/+32
| | | | | | | | | Adding Ed25519 keys brings the problem that with the library currently used, the PublicKey instance of that key is not serialisable. This results in an exception when wicket tries to cache the UsersPage. So change the SshKeysPanel so that the PublicKey object is removed from the `SshKey` when the panel is detached. It can be regenerated from the raw key data.
* deps: Update Jetty to version 9.4.49.v20220914Florian Zschocke2022-11-131-10/+10
| | | | | | | | | | | | | | | | | This updates Jetty to the latest 9.x version as of writing. The 9.x is still running on Java 8. The update needs two code changes. `SessionManager` was replaced with `SessionHandler`. This was documented in the Jetty documentation. Adding the `GitblitContext` to the `WebAppContext` will result in two instances getting created, because the code was changed that prevents instantiation the same listener class multiple times. (The second time is when the web.xml is read.) Instead, it must be added to the servlet handler of the `WebAppContext`. This results in properly adhering to the changed internal startup flow. Updating Jetty also resolves #1409.
* fix: Fix jetty crashing when redirecting HTTP to HTTPSFlorian Zschocke2022-11-111-1/+1
| | | | | | | | | Jetty 9.3 changed the `setHandler` on the ServletContextHandler to no longer automatically detect SecurityHandler, SessionHandler, etc. It simply passes on the setHandler request to the ContextHandler class (with a warning logged). So make sure to explicitly use the method `setSecurityHandler` to set the ContraintSecurityHandler responsible for the http -> https redirection.
* bugtraq: Catch exceptions from bugtraq and show messageFlorian Zschocke2022-11-111-3/+3
| | | | | | | Catch all exceptions, and not just IOExceptions, from bugtraq formatter. If an exception is caught, ignore the bugtraq handling of the commit message and show the plain message. Way better then not showing anything just because something broke in bugtraq.
* Remove workaround for JGit crashing on 'utf-9' etcFlorian Zschocke2022-11-112-159/+0
| | | | | | | Updating JGit fixed the issue that a commit in a repo with an unknown character set throws an exception. This would crash the RepositoryManager. The extra handling, which patches JGit classes during runtime is completely removed.
* Add wrapper class to return a default encodingJan Vanhercke2022-11-092-2/+145
| | | | | Unknown encodings may cause gitblit to fail to start. This modification injects a wrapper class in the JGit internal to fake a valid return value.
* Replace key feedback with label instead of FeedbackMessageFlorian Zschocke2022-11-013-6/+18
| | | | | | Since it is a pest to get rid of a Wicket FeedbackMessage in an AJAX target, change the code to use an extra label that can provide feedback if the key could not be parsed or was empty.
* Add feedback to SSH Key Form. #1226Martin Spielmann2022-11-014-1/+9
| | | | | if key is empty of can not be parsed, form did provide any feedback to user before
* authority: Fix null pointer crash for deleted usersFlorian Zschocke2022-11-011-1/+5
| | | | | | | | | | | | When a user had a certificate, i.e. an entry in the Gitblit Authority database, but the user was deleted from the Gitblit database, then the Authority application crashes upon loading. This patch prevents the crash. The deleted user is no longer shown in the Authority. But the database entry still is kept. This should be improved to show deleted users and give the possibility to delete them from the Authority's database. This fixes #1359
* fix: Fix null pointer exception in FileSettingsFlorian Zschocke2022-10-311-0/+3
| | | | | Fix a null pointer access in the `toString` method for a freshly created `FileSettings`.
* Skip SSH host key files that do not existFlorian Zschocke2022-10-251-0/+6
| | | | | | | | | | Since we now do not generate a DSA host key file anymore, but keep it in the list of potential keys so that existing keys still work, it can happen that the files for DSA (and Ed25519) are getting loaded but they do not exist. This results in an error in the log. So instead check if the file exists and only try to load files that exist. This prevents from errors (which are none) being spammed in the log.
* Add SSH host keys with ECDSA and Ed25519Florian Zschocke2022-10-252-14/+115
| | | | | | | | | Create new host keys, one with ECDSA and one with Ed25519 algorithms. For the Ed25519 currently the EdDSA library from i2p is used. This requires some quirks, compared to a modern BouncyCastle. But the SSHD library used cannot use BouncyCastle yet for Ed25519. No DSA key is generated anymore, but we still support existing ones.
* format: Cleanup formatting and whitespacesFlorian Zschocke2022-10-251-23/+41
|
* Update BouncyCastle to version 1.69Florian Zschocke2022-10-253-40/+18
| | | | | | | | | | | The version 1.69 is chosen instead of 1.70, because the moxie build would not download the jars, trying to download `...1.7.jar` instead. Three class deprecations are fixed. `PEMWriter` and `X509Extension` are replaced with their drop-in replacements `JcaPEMWriter` and `Extension`. The `PasswordFinder` deprecation note says that "it is no longer used". It also was never used in Gitblit's code, so it is removed from the key par provider class.
* Update dependency MINA SSHD to version 1.7.0Florian Zschocke2022-10-091-3/+6
|
* upgrade to sshd 1.6.0, add eddsa dependency, upgrade jgit to 4.1.2ricardop2022-10-084-20/+29
| | | | | | | | | (cherry picked from commit d8fbdda2ab3fa48e92bdf37399d4b75c48409c5c@rpardini:master) # Conflicts: # .classpath # build.moxie # src/test/java/com/gitblit/tests/SshUnitTest.java
* Use existing setting but with new valuesFlorian Zschocke2022-08-142-6/+31
| | | | | | | | | | | Instead of adding another setting and having to explain how the new one and the existing `requireClientCertificates` setting are interdependent, let's use the existing setting and add new values. It is changed from a boolean to a string, with the values `required`, `optional` and `disabled`. To keep backward compatibility with the old values, the `true` value is mapped to `required` and the `false` value is mapped to `optional`.
* Merge branch 'disable-client-certs' of github.com:oddeirik/gitblit into ↵Florian Zschocke2022-08-141-1/+4
|\ | | | | | | oddeirik-disable-client-certs
| * Add setting to explicitly enable or disable optional client certificates.Odd Eirik Nes2016-10-171-1/+4
| |
* | Rewrite fix without the additional ListFlorian Zschocke2022-08-071-17/+10
| | | | | | | | | | | | This also removes the additional Set. What changes is that the order of the repositories is kept, but the resulting list will have user and team permissions intertwined.
* | fix user effective permission display if users is in multiple groups with ↵kaspars.kurms2022-08-071-0/+13
| | | | | | | | different permissions
* | Fix: if statement without curly bracesQuentin2022-08-021-1/+2
| |
* | Changed tab to space conversionQuentin2022-08-021-1/+8
| | | | | | | | | | Tabs are not always 4 spaces large. It completes the line to the 4th character.
* | pages: Fix link for GitExtension, which moved to GithubFlorian Zschocke2022-04-0913-13/+13
| |
* | fix: Fix StoredUserConfig not escaping control charactersFlorian Zschocke2022-03-131-3/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `StoredUserConfig` only escaped the escape character, i.e. backslash. But it does not escape control characters like tab or newline. This introduces a vulnerability where an attacker can create new entries in their user account and create new accounts. In addition, other characters are also not properly handled. Field values with a comment character need to be quoted. This only happens for the `#` character and only when the value starts with it. Also the quote is note escaped in values. This change completely rewrites the `escape` method of `StoredUserConfig`. It takes care of properly escaping characters that need escaping for the git configuration file format. This fixes #1410
* | fix: Fix StoredUserConfig handling null subsectionsFlorian Zschocke2022-03-131-2/+7
| | | | | | | | | | | | | | | | | | | | Te `StoredUserConfig` did not handle sections without a subsection. When the subsection did not exist, i.e. was `null`, then the subsection name would be set to the string "null". This is not how the config file format works. It should create a `[SECTIONNAME]` entry instead. This fix handles a `null` subsection correctly, by handling it as a section without a subsection.
* | Update japanese translationTakehide Morimoto2022-01-153-170/+1260
| |
* | Detect and report if running in containerFlorian Zschocke2021-12-102-0/+76
| | | | | | | | | | | | | | To help with analysis, try to detect if the instance is running inside a container. Some containers are detected, but this is probably not exhaustive. At least a Docker container should be detectable. Report in the runtime manager to the log if a container was detected.
* | pages: Fix repo-relative reference links in markdown docsFlorian Zschocke2021-12-061-14/+39
| | | | | | | | | | | | | | | | As with explicit links, also for reference links in markdown documents which point to repository-relative files the links are broken. They do not take the path to the repository into account. This fix is related to commit b23269 which fixed issue #1358 for explicit links.
* | bug: Fix double encoding links in Markdown/Wiki pagesFlorian Zschocke2021-12-041-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | When parsing Markdown or Wiki pages, links get URL encoded. This happened twice for links to other documents. Once explicitly and once by Wicket when it creates a `urlFor` the page. That results in multi-byte characters getting percent escaped, and then the percent character again getting percent escaped. The explicit encoding looks like a forgotten left over, so it gets removed from the code. The Wicket encoding is smarter anyways, knowing what is path and what is parameter. This fixes #864.
* | Fixes external links broken in markdown rendering (#1392)TomaszSzt2021-11-181-0/+16
| | | | | | | | | | * This commit fixes what was broken in commit https://github.com/gitblit/gitblit/commit/b23269acc0f460f583311c679d751925b8402563 due to #1358 issue
* | Fix NPETom2021-11-031-7/+3
| | | | | | | | | | | | | | | | Although it seems strange to have a RefModel with a referenced object but a null Ref, Gitblit uses such RefModels for instance in JGitUtils.getNotesOnCommit(). Be careful to do something sensible when that Ref is null.
* | Issue #1011: do not serialize JGit commit objectsTom2021-11-0313-97/+230
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JGit commit objects are a recursive data structure; they have links to their parent commits. Serializing a JGit commit will try to recursively serialize all reachable ancestors as faras they have been loaded. If that ancestor chain is too long, a StackOverflowError is thrown during Wicket's page serialization if a page has a reference to sucha JGit commit. Fixed by making sure that pages o not contain references to JGit commits. Use the (existing) wrapper object RepositoryCommit instead. * RepositoryCommit has a transient reference to the JGit commit and reads the commit from the repository upon de-serialization. * RefModel is a similar case (JGit tags/branches may also have links to the commits they point to). Solved a bit differently by making it a pure data object by transferring the interesting data from the JGit object in the constructor. * Change DataViews instantiated with RevCommit to use RepositoryCommit instead. * Change inner anonymous DataViews to ensure they do not have a synthesized field referencing the "allRefs" map. Such a synthesized field would also get serialized, and then serialize JGit commits again. Finally, remove non-transient logger instances in Wicket classes. Those might lead to NotSerializableException. These StackOverflowErrors have been reported in several places since 2014: * https://groups.google.com/forum/#!topic/gitblit/GH1d8WSlR6Q * https://bugs.chromium.org/p/gerrit/issues/detail?id=3316 * https://groups.google.com/d/msg/repo-discuss/Kcl0JIGNiGk/0DjH4mO8hA8J * https://groups.google.com/d/msg/repo-discuss/0_P6A3fjTec/2kcpVPIUAQAJ * https://github.com/gitblit/gitblit/issues/1011 * https://github.com/tomaswolf/gerrit-gitblit-plugin/issues/21
* | Add test for loading russian propertiesFlorian Zschocke2021-11-031-0/+3
| |
* | Adding Russian Translate Добавлен русский языкVladimir A2021-11-033-0/+848
| |
* | raw: URL encode the links to raw view of filesFlorian Zschocke2021-10-241-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far links to raw view were not encoded. The browser did some encoding of spaces on its own, which the servlet would unescape, since it uses the `HttpServletRequest.getPathInfo` method. That decodes the path before returning it. A problem arises when a bracket is in the file (or folder) name. The brackets are the characters that are not allowed in the path, according to the `URI.parse` method. (Which is a bit harsh, because brackets actually are only reserved for the host part since IPv6.) That means that the decoding fails when a bracket character is encountered. This went unnoticed since the failed decoding will return the path as it got it. But once there is a space in the file name, which the browser helpfully encoded for us, the failed decoding will now leave the encoded space in there. And that will result in a path that does not exist, e.g. `file%20[a]`. To be on the safe side, we simply encode the path in the links that we generate, so that it complies with the rules that are used in `getPathInfo`. This fixes #1375.
* | TimeUtils: Change daysAgo to calculate difference in calendar daysFlorian Zschocke2021-10-241-1/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | The `daysAgo` method seemed to want to normalize on a calendar day? I can't really tell what it was trying to do, but the problem is that it does not take into account any time shift due to time zones so it never really worked outside of GMT. So instead a new `calendarDaysAgo` method is added (because I am unsure on what the `daysAgo` method is trying to do. It can probably be removed). The new method cleanly calculates difference in calendar days because it normalizes the two given time stamps on the same time zone. The `timeAgo` method now used the new method. This fixes #1248.
* | TimeUtils: Move unit test to same package as TimeUtils isFlorian Zschocke2021-10-231-5/+5
| | | | | | | | | | | | | | | | | | | | For some reason the `TimeUtilsTest` class is, like almost all tests, in the `com.gitblit.tests` package. But this way all methods in classes which we might predominately need for tests have to be public. So move the unit test class `TimeUtilsTest` to the same package as the class it is testing, i.e. `com.gitblit.utils.TimeUtils`. This way we ca set the new added methods which get the current time passed in to be at least not public.
* | TimeUtils: Increase testability and add testsFlorian Zschocke2021-10-231-8/+32
| | | | | | | | | | | | | | | | | | Add tests for `timeAgo` to analyse issue #1248. The tests are dependent on when they run as they time functions use the current date and time. To make them testable in a reproducible way, we need the ability to pass in what we think is "now". So add overloaded methods that take a `now` parameter so that we can pass in the current time.