Commit Graph

4165 Commits

Author SHA1 Message Date
Rene Pfeuffer
01bd18b714 Fix error for commits with SSH signatures
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-03-06 13:23:55 +01:00
Laura Gorzitze
aa84568c1c Merge tag '2.46.2' into develop
Release version 2.46.2
2024-03-05 10:48:19 +01:00
Laura Gorzitze
1ab5c3fe80 Adjust security headers to allow pdf rendering 2024-03-04 14:50:39 +01:00
Laura Gorzitze
a61f840b0e Description for plugin condition mismatch
The missing description of the plugin condition in the
logs during a condition mismatch is now included and
also displayed in a readable way. Additionally, a
specialised error will be displayed during the installation
or update of plugins detailing that a condition mismatch
happened and also which condition was not fulfilled
instead of a generic internal server error.
2024-02-22 18:19:44 +01:00
Laura Gorzitze
46c52cdb99 Fix uninstallable flag after discarding changes
After uninstalling a plugin (without restart) and then discarding the
changes, plugins which are required for the plugin can be uninstalled
even if the uninstallation was reverted. This was caused by not updating
the dependency relations between the plugins when an uninstallation has
been canceled. Therefore, the updating step is added.
2024-02-13 18:02:54 +01:00
Eduard Heimbuch
89c4a20dd5 Add namespace owner on namespace creation
Namespace owner may see the namespace configuration page.

Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-02-08 14:18:16 +01:00
Laura Gorzitze
d8e1f2d739 Cleanup Code
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-02-06 14:54:00 +01:00
Rene Pfeuffer
28c02dfcd6 Fix enabling forward headers and log appender with environment variable
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-02-02 15:10:32 +01:00
Eduard Heimbuch
488e04823c Change work dir for devs 2024-01-15 19:58:17 +01:00
Rene Pfeuffer
587863b0a6 Fix Windows specific paths
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2024-01-09 10:17:01 +01:00
Eduard Heimbuch
b397aaacce Re-add exit code restart strategy 2024-01-09 09:20:43 +01:00
Eduard Heimbuch
5cffa4f26d Transform 2.x dependent plugins only once 2024-01-08 15:59:38 +01:00
René Pfeuffer
314fb02823 Fix workdir configuration 2023-12-20 16:31:41 +01:00
Eduard Heimbuch
d0c43dd9f4 Improve server config documentation and cleanup 2023-12-18 15:30:57 +01:00
Eduard Heimbuch
cf4d9cf20f 3.x
Committed-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Pushed-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-30 17:02:44 +01:00
Rene Pfeuffer
14f1cb0218 Remove exception from api key verification
This removes repeated exceptions from the api key service when checking requests without an api key. Despite of throwing an exception, the service now simply returns &#96;null&#96;, when the authentication was not successful.

Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-21 08:13:07 +01:00
Rene Pfeuffer
112a6ad329 Accept file names with semicolons in SVN commits
Co-authored-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Pushed-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-17 13:08:09 +01:00
Florian Scholdei
a8c32b10de Preferred checkout variant
Add ability to prioritize the repository checkout variants. These are displayed sorted.

Co-authored-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
Pushed-by: Florian Scholdei<florian.scholdei@cloudogu.com>
Co-authored-by: Florian Scholdei<florian.scholdei@cloudogu.com>
Pushed-by: Eduard Heimbuch<eduard.heimbuch@cloudogu.com>
2023-11-15 13:27:48 +01:00
Eduard Heimbuch
8dc0041e17 Remove mail for anonymous user 2023-11-13 16:19:15 +01:00
Rene Pfeuffer
234f7d840e Do not render links to not-existing users in groups
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-07 13:42:31 +01:00
Rene Pfeuffer
fd53c17e9e Clear caches before rebuilding index
This is a follow-up to #202

Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-07 08:58:49 +01:00
Rene Pfeuffer
f333a0bf18 Use a random time for plugin center updates
Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-06 10:34:05 +01:00
Thomas Zerr
123fc4c3d1 Invalidation of caches and search index
In the general admin settings, the user can find two button to either invalidate the cache or rebuild the search index.&#10;&#10;The endpoints are defined in the InvalidationResource class in scm-webapp.

Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-11-02 10:51:32 +01:00
Tarik Gürsoy
c4db885937 No owner set when import repo with metadata
When importing a SCM exported Repo with Metadata the creator wasnt set as the owner and thus couldnt view the imported repository. This bug has been fixed.

Pushed-by: Tarik Gürsoy<tarik.guersoy@cloudogu.com>
Co-authored-by: Tarik Gürsoy<tarik.guersoy@cloudogu.com>
2023-10-17 08:28:08 +02:00
Rene Pfeuffer
d0f8161220 Add functionality to modify repository storage locations
The repository location resolver gets a new function&#10;that allows to change the location of a repository.

Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-10-13 10:23:29 +02:00
Rene Pfeuffer
2ca68c43b3 Add update steps for namespaces
This adds a new update step API dedicated&#10;to handle namespace related data.

Pushed-by: Rene Pfeuffer<rene.pfeuffer@cloudogu.com>
Co-authored-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
Committed-by: René Pfeuffer<rene.pfeuffer@cloudogu.com>
2023-10-05 11:00:20 +02:00
Rene Pfeuffer
5149927195 Avoid IllegalStateExceptions
The DefaultNamespaceManager has not been a singleton.
Because of this, instances could be removed before
the event has been handled completely and therefore
the handler could no longer be removed from the queue,
resulting in an IllegalStateException.

By making the manager a singleton, it is no longer
garbage collected and therefore we do not get the
exception any longer.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-09-20 17:36:34 +02:00
Rene Pfeuffer
d2a0525b0b Catch exception when repositories are deleted
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-09-19 09:30:14 +02:00
Thomas Zerr
b2472d85d0 Added force to push command for git and hg repos
Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-09-14 20:28:37 +02:00
Eduard Heimbuch
93a23466ff Fix cypress by using new stage "TESTING"
Cypress did not work because of the stricter security header. We introduced a new stage named "TESTING" which ignores this security headers and allow testing tools to work as intended.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-09-08 15:19:54 +02:00
Laura Gorzitze
3a99fe7a82 Fix archive cleaner when no directory exists 2023-09-05 10:15:45 +02:00
Laura Gorzitze
e63f4fcd64 Create plugin archive cleaner
SCM-Manager created directories for each plugin every time the plugin is installed without deleting the old directories. With this change the old directories will be removed. 

Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-09-04 11:56:54 +02:00
Eduard Heimbuch
95142b122d Decrease general log level for development environments from TRACE to DEBUG 2023-08-16 11:13:46 +02:00
Eduard Heimbuch
8cafeefc74 Deactivate shiro's blockTraversal filter
Because it breaks our branch encodings

Committed-by: Florian Scholdei <florian.scholdei@cloudogu.com>
2023-08-02 15:27:09 +02:00
Thomas Zerr
a2c9ed67a3 User jwt sessions can now be endless
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: tzerr <thomas.zerr@cloudogu.com>

Reviewed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-07-27 13:03:35 +02:00
Eduard Heimbuch
0a1d9954a0 Remove content security header upgrade-insecure-requests which breaks http only server configs 2023-07-27 11:42:41 +02:00
Eduard Heimbuch
c1d7230fbd Add "enable file search" flag on global config.
Make the repository file search deactivatable
via the global config. This feature could
overwhelm the server on repositories with
millions of file therefore it now can be turned off.

Committed-by: Rene Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-07-06 08:47:51 +02:00
Eduard Heimbuch
0e7a3ec53b Improve general performance
- Adjust logging
- Optimize cache speed
- Cleanup classes

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>

Reviewed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-06-28 14:18:18 +02:00
Eduard Heimbuch
cc54e2ce6b Caches for internal stores and files
This adds optional caches for configuration stores and
backing data files for data stores.

These stores can be enabled using the system properties
`scm.storeCache.enabled=true` and `scm.cache.dataFileCache.enabled=true`.

In addition, this adds the possibility to overwrite cache configurations
from the guice cache (see file `gcache.xml`) with system properties.
The maximum size of the external group cache for example can be
overwritten with the system property `scm.cache.externalGroups.maximumSize`.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-28 12:38:15 +02:00
Rene Pfeuffer
bceef8ee7c Internal server error with external groups
Fixes a null pointer exception resulting in an internal
server error in the permission overview for users with
external groups, for example from ldap or cas.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-21 09:34:53 +02:00
Rene Pfeuffer
32a0a6868f Fix security findings
- Add security headers:
  - X-Frame-Options
  - X-Content-Type-Options
  - Content-Security-Policy
  - Permissions-Policy
- Do not send server information header

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-14 15:57:01 +02:00
Rene Pfeuffer
c3093a3b0d Prevent repository loading in namespace mapper
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-13 16:16:15 +02:00
Rene Pfeuffer
86b8be9f17 In-memory implementations of the store api using JaxB
The new implementations are ment to be used in test
classes replacing the older implementations like
`InMemoryConfigurationStoreFactory`. The benefit
of these new classes is that the serialization using JaxB
is testet implicitly avoiding mistakes made with XML
annotations on the data classes.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-06-07 10:04:50 +02:00
Eduard Heimbuch
a50e456969 Ignore duplicate contributors for single changeset
Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-05-25 19:26:38 +02:00
Konstantin Schaper
b812922142 Implement namespace configurations & permissions
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>

Reviewed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2023-05-25 18:51:29 +02:00
René Pfeuffer
30affae76d Fix hg anonymous access by sending authenticate header
If anonymous access is enabled and read requests are granted
to hg repositories for the anonymous user, write requests
fail also for users with write requests, because no
authentication header has been sent along with the 401.
This fixes this issue in the default cgi servlet.
2023-05-19 13:17:45 +02:00
Rene Pfeuffer
8025e82b1b Use pgpainless for key generation
The library pgpainless (https://gh.pgpainless.org/) makes it much more easy to create gpg keys for new users. As a benefit, these keys can be verified by GitHub.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-05-08 15:31:56 +02:00
Eduard Heimbuch
c6df84557b Refactor general configuration
Use standard configuration store api for general configuration. This is best practice and also required for the audit log to work properly.

Besides that we still need to load the general configuration manually for the instance injection binding in ScmServletModules. Since the instance injection does not resolve the bindings regularly we need also still need to update the injectable scm config using the "load" hack in the resource.

Committed-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2023-04-12 12:37:52 +02:00
Konstantin Schaper
d257c8616c Display images in diffs
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-22 11:17:22 +01:00
Rene Pfeuffer
68110ee6b3 Retry failing integration tests
This uses 'RetryingTest' from junit jupiter to retry integration tests that are known to fail from time to time. We explicitly mark single tests in contrast to set a global retry to be able to trace those, whenever this is intended.

To do so, we have to update to the latest version of JUnit. Unfortunately, this brought a new behaviour for the @TempDir annotation: In contrast to the former behaviour where for one test all annotated parameters got the same directory, in the new version the parameters get different directories assigned. This led to the need of some consolidation between @BeforeEach methods and the related tests.

Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2023-03-22 06:24:33 +01:00