[tomcat] branch main updated: LocalString_xx.properties are UTF-8 when filtered
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new f386297 LocalString_xx.properties are UTF-8 when filtered f386297 is described below commit f3862979243af002210ba71dc483abb4edcad65d Author: Mark Thomas AuthorDate: Tue Jun 1 08:20:26 2021 +0100 LocalString_xx.properties are UTF-8 when filtered --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 2a41f76..993f31f 100644 --- a/build.xml +++ b/build.xml @@ -979,7 +979,7 @@ - + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 10.0.x updated: LocalString_xx.properties are UTF-8 when filtered
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.0.x by this push: new d6220c2 LocalString_xx.properties are UTF-8 when filtered d6220c2 is described below commit d6220c2f4afd6632384e1d4676484edadf221179 Author: Mark Thomas AuthorDate: Tue Jun 1 08:20:26 2021 +0100 LocalString_xx.properties are UTF-8 when filtered --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index d53c4c3..678568d 100644 --- a/build.xml +++ b/build.xml @@ -979,7 +979,7 @@ - + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 9.0.x updated: LocalString_xx.properties are UTF-8 when filtered
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new daf3b8a LocalString_xx.properties are UTF-8 when filtered daf3b8a is described below commit daf3b8a6e648e012741054906e2b8e425c0bbbd1 Author: Mark Thomas AuthorDate: Tue Jun 1 08:20:26 2021 +0100 LocalString_xx.properties are UTF-8 when filtered --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index 89feb96..d1eb1c2 100644 --- a/build.xml +++ b/build.xml @@ -978,7 +978,7 @@ - + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated: LocalString_xx.properties are UTF-8 when filtered
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/8.5.x by this push: new 75f3301 LocalString_xx.properties are UTF-8 when filtered 75f3301 is described below commit 75f3301d97f5fca6fc28ba37fcb831fd6364ce08 Author: Mark Thomas AuthorDate: Tue Jun 1 08:20:26 2021 +0100 LocalString_xx.properties are UTF-8 when filtered --- build.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.xml b/build.xml index ad55d0b..0ad4be1 100644 --- a/build.xml +++ b/build.xml @@ -726,7 +726,7 @@ - + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat-native] branch main updated: Fix BZ 65329. Correct handling of WINVER constants. Add newer OSs.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat-native.git The following commit(s) were added to refs/heads/main by this push: new b3b2ccf Fix BZ 65329. Correct handling of WINVER constants. Add newer OSs. b3b2ccf is described below commit b3b2ccfedcf2b964b29377bb3a4b901dac91d015 Author: Mark Thomas AuthorDate: Tue Jun 1 09:50:07 2021 +0100 Fix BZ 65329. Correct handling of WINVER constants. Add newer OSs. https://bz.apache.org/bugzilla/show_bug.cgi?id=65329 --- native/NMAKEmakefile.inc | 34 +- xdocs/miscellaneous/changelog.xml | 7 +++ 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/native/NMAKEmakefile.inc b/native/NMAKEmakefile.inc index b09c1d4..751a1d2 100644 --- a/native/NMAKEmakefile.inc +++ b/native/NMAKEmakefile.inc @@ -30,12 +30,15 @@ # PROCESSOR_ARCHITECTURE environment variable # or to the X86 if not specified. # WINVERCompile for specified Windows version +# WIN10 for Windows 10 and up +# WIN81 for Windows 8.1 and up +# WIN8for Windows 8 and up # WIN7for Windows 7 and up (default) # Deprecated targets (may not even compile): +# VISTA for Windows Vista / Server 2008 and up # WIN2003 for Windows 2003 and up -# VISTA for Windows Vista and up # WINXP for Windows XP and up -# WINNT for Windows 2000 and up +# WIN2K for Windows 2000 and up # BUILD Build version # RETAIL or RELEASE (default) # DEBUG @@ -143,19 +146,7 @@ WINVER=WIN7 !ENDIF -!IF "$(WINVER)" != "WINNT" -!IF "$(WINVER)" != "WINXP" -!IF "$(WINVER)" != "WIN2003" -!IF "$(WINVER)" != "VISTA" -!IF "$(WINVER)" != "WIN7" -!ERROR Must specify WINVER environment variable (WINNT, WINXP, WIN2003, VISTA, WIN7) -!ENDIF -!ENDIF -!ENDIF -!ENDIF -!ENDIF - -!IF "$(WINVER)" == "WINNT" +!IF "$(WINVER)" == "WIN2K" NMAKE_WINVER = 0x0500 _WIN32_IE = 0x0500 !ELSEIF "$(WINVER)" == "WINXP" @@ -168,10 +159,19 @@ _WIN32_IE = 0x0600 NMAKE_WINVER = 0x0600 _WIN32_IE = 0x0700 !ELSEIF "$(WINVER)" == "WIN7" -NMAKE_WINVER = 0x0700 +NMAKE_WINVER = 0x0601 _WIN32_IE = 0x0800 +!ELSEIF "$(WINVER)" == "WIN8" +NMAKE_WINVER = 0x0602 +_WIN32_IE = 0x0A00 +!ELSEIF "$(WINVER)" == "WIN81" +NMAKE_WINVER = 0x0603 +_WIN32_IE = 0x0A00 +!ELSEIF "$(WINVER)" == "WIN10" +NMAKE_WINVER = 0x0A00 +_WIN32_IE = 0x0A00 !ELSE -!ERROR Must specify WINVER environment variable (WINNT, WINXP, WIN2003, VISTA, WIN7) +!ERROR Must specify WINVER environment variable (WIN2K, WINXP, WIN2003, VISTA, WIN7, WIN8, WIN81, WIN10) !ENDIF NMAKE_WINNT = -DWINNT -D_WINNT -D_WIN32_WINNT=$(NMAKE_WINVER) -DWINVER=$(NMAKE_WINVER) -D_WIN32_IE=$(_WIN32_IE) -DPSAPI_VERSION=1 diff --git a/xdocs/miscellaneous/changelog.xml b/xdocs/miscellaneous/changelog.xml index e366685..c5a2245 100644 --- a/xdocs/miscellaneous/changelog.xml +++ b/xdocs/miscellaneous/changelog.xml @@ -40,6 +40,13 @@ using OpenSSL Engines that use proprietary key formats. Based on a patch provided by Edin Hodzic. (markt) + + 65329: Correct handling of WINVER in make file to + use correct constant for Windows 7. Add constants for Windows 8, + Windows 8.1 and Windows 10. Rename WINNT to + WIN2k as it is used for Windows 2000 upwards, not Windows NT + upwards. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[Bug 65329] Incorrect handling for WINVER in NMAKEmakefile
https://bz.apache.org/bugzilla/show_bug.cgi?id=65329 Mark Thomas changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Mark Thomas --- Fixed for 1.2.30 onwards. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] rmaucher commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
rmaucher commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-851974510 I'm quite sure this was done on purpose [want to be able to lock away someone instantly] but this probably does not make much sense as the behavior cannot become consistent. Lookup every time is ok for the memory db, would cause problems everywhere else most likely. It is not surprising this was not really acked in the documentation. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat-native] branch main updated: Add best guess for 1.2.30 release date
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat-native.git The following commit(s) were added to refs/heads/main by this push: new 7aba956 Add best guess for 1.2.30 release date 7aba956 is described below commit 7aba956635ec5d9ad77fbe32309733321f7f52cc Author: Mark Thomas AuthorDate: Tue Jun 1 10:36:22 2021 +0100 Add best guess for 1.2.30 release date --- xdocs/index.xml | 4 ++-- xdocs/news/2021.xml | 5 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/xdocs/index.xml b/xdocs/index.xml index 1c0640d..42130c3 100644 --- a/xdocs/index.xml +++ b/xdocs/index.xml @@ -60,10 +60,10 @@ -1 Jun 2021 - TC-Native-1.2.29 +4 Jun 2021 - TC-Native-1.2.30 released The Apache Tomcat team is proud to announce the immediate availability of -Tomcat Native 1.2.29 Stable. +Tomcat Native 1.2.30 Stable. The sources and the binaries for selected platforms are available from the Download page. diff --git a/xdocs/news/2021.xml b/xdocs/news/2021.xml index a9f6c7b..15fca2c 100644 --- a/xdocs/news/2021.xml +++ b/xdocs/news/2021.xml @@ -29,6 +29,11 @@ + + The Apache Tomcat team is proud to announce the immediate availability of + Tomcat Native 1.2.28. This is a bugfix release. + + The Apache Tomcat team is proud to announce the immediate availability of Tomcat Native 1.2.28. This is a bugfix release. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat-native] tag 1.2.30 created (now 8b1baaa)
This is an automated email from the ASF dual-hosted git repository. markt pushed a change to tag 1.2.30 in repository https://gitbox.apache.org/repos/asf/tomcat-native.git. at 8b1baaa (commit) This tag includes the following new commits: new 8b1baaa Tag 1.2.30 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat-native] 01/01: Tag 1.2.30
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to tag 1.2.30 in repository https://gitbox.apache.org/repos/asf/tomcat-native.git commit 8b1baaa1af07c07a9f44f9adb31b7dbdabd6ff39 Author: Mark Thomas AuthorDate: Tue Jun 1 10:37:48 2021 +0100 Tag 1.2.30 --- build.properties.default | 2 +- native/include/tcn_version.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.properties.default b/build.properties.default index f9dcfb9..665fa67 100644 --- a/build.properties.default +++ b/build.properties.default @@ -20,7 +20,7 @@ version.major=1 version.minor=2 version.build=30 version.patch=0 -version.suffix=-dev +version.suffix= # - Default Base Path for Dependent Packages - # Please note this path must be absolute, not relative, diff --git a/native/include/tcn_version.h b/native/include/tcn_version.h index a44bae4..85abde7 100644 --- a/native/include/tcn_version.h +++ b/native/include/tcn_version.h @@ -69,7 +69,7 @@ extern "C" { * This symbol is defined for internal, "development" copies of TCN. This * symbol will be #undef'd for releases. */ -#define TCN_IS_DEV_VERSION 1 +#define TCN_IS_DEV_VERSION 0 /** The formatted string of APU's version */ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r48031 - /dev/tomcat/tomcat-connectors/native/1.2.29/
Author: markt Date: Tue Jun 1 09:40:24 2021 New Revision: 48031 Log: Tomcat Native 1.2.29 release cancelled Removed: dev/tomcat/tomcat-connectors/native/1.2.29/ - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
buildbot success in on tomcat-9.0.x
The Buildbot has detected a restored build on builder tomcat-9.0.x while building tomcat. Full details are available at: https://ci.apache.org/builders/tomcat-9.0.x/builds/4 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: asf946_ubuntu Build Reason: The AnyBranchScheduler scheduler named 'on-tomcat-9.0-commit' triggered this build Build Source Stamp: [branch 9.0.x] daf3b8a6e648e012741054906e2b8e425c0bbbd1 Blamelist: Mark Thomas Build succeeded! Sincerely, -The Buildbot - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
svn commit: r48032 - in /dev/tomcat/tomcat-connectors/native/1.2.30: ./ binaries/ source/
Author: markt Date: Tue Jun 1 09:48:53 2021 New Revision: 48032 Log: Upload Tomcat Native 1.2.30 for voting Added: dev/tomcat/tomcat-connectors/native/1.2.30/ dev/tomcat/tomcat-connectors/native/1.2.30/binaries/ dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip (with props) dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.asc dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.sha512 dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-win32-bin.zip (with props) dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-win32-bin.zip.asc dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-win32-bin.zip.sha512 dev/tomcat/tomcat-connectors/native/1.2.30/source/ dev/tomcat/tomcat-connectors/native/1.2.30/source/tomcat-native-1.2.30-src.tar.gz (with props) dev/tomcat/tomcat-connectors/native/1.2.30/source/tomcat-native-1.2.30-src.tar.gz.asc dev/tomcat/tomcat-connectors/native/1.2.30/source/tomcat-native-1.2.30-src.tar.gz.sha512 dev/tomcat/tomcat-connectors/native/1.2.30/source/tomcat-native-1.2.30-win32-src.zip (with props) dev/tomcat/tomcat-connectors/native/1.2.30/source/tomcat-native-1.2.30-win32-src.zip.asc dev/tomcat/tomcat-connectors/native/1.2.30/source/tomcat-native-1.2.30-win32-src.zip.sha512 Added: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip == Binary file - no diff available. Propchange: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip -- svn:executable = * Propchange: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip -- svn:mime-type = application/octet-stream Added: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.asc == --- dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.asc (added) +++ dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.asc Tue Jun 1 09:48:53 2021 @@ -0,0 +1,17 @@ +-BEGIN PGP SIGNATURE- +Comment: GPGTools - http://gpgtools.org + +iQIzBAABCgAdFiEEqcXfTSLpmZjZh1pREMAcWi9gWecFAmC2AlcACgkQEMAcWi9g +Wecg9hAAtPLamw+w90zyUxykLIw0aZTwfaMF1QHiwk6slNTfSthV++z6ArTIKtvv +4lRd2wL0pBByks/c7O77CUuGmAp02DmiuuPlmPWBm4+BzWNhFutX1XAcQ3+lwxz+ +FpQtRn5BYTeiQaMBR/B+qZL+5RpECjCKdmqo6XAQoU+Cmmvzya+9xTQMAGpUj5XR +5cC04cbJb9yD8j8H3tAj9SLSRt2pMe/KnoCcNGmJWEou03EfN3MAeTAgRbMDY9DF +jFut5ABZ5fb8sWvQvqgtkq4Uubf/KHwVcgmnSYBdEc/UU4lQDwxZW8Ammzxc6EYf +pWEPjMErpN/3oEAOzTKnNAkO7vJpbH1aSxj4o0lZBMb9xA9q2Q/roIzPejhPUuU5 +mZuJTcHkwaMv0FqJ+wiOpQMNwK662+u0HuUsb0f5WrRxqPongXDKApqV6odAsdYt +VfevRUlVzTKmxEuazXAd9PqLNggJUekE7qS7stt/OJYvIOTBB36LLtoJbgGKFEEt +aHlTDohIwUH/ttRSf5LC9H1y9GhY7PaK7zKJz/Hk7yAHHARM0HPWNSUx4GqWtSro +zS5NamBA5TB+klJUrxYtR0jNW/rMYNtTcsMIuhuaOTCM8ms5huX2n6LcpDhwVI1v +AgiYD8bPKbq4f/+s1HpCwUoiepMrgv43+EMTB94hos5lyUIdIEg= +=4aEr +-END PGP SIGNATURE- Added: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.sha512 == --- dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.sha512 (added) +++ dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip.sha512 Tue Jun 1 09:48:53 2021 @@ -0,0 +1 @@ +f8ad227e523e8935a88a6ca61c7de514e6f9f81ed5f723e58a7d1696c5c22a20772df5c40f8b719a9fe90f2c024687375f3cf70446cea2d4cb636fdee1a5bb7e *tomcat-native-1.2.30-openssl-1.1.1k-ocsp-win32-bin.zip \ No newline at end of file Added: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-win32-bin.zip == Binary file - no diff available. Propchange: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-win32-bin.zip -- svn:executable = * Propchange: dev/tomcat/tomcat-connectors/native/1.2.30/binaries/tomcat-native-1.2.30-openssl-1.1.1k-win32-bin.zip -- svn:mime-typ
[VOTE] Release Apache Tomcat Native 1.2.30
Resending with correct subject line... Version 1.2.30 includes the following changes compared to 1.2.28 - Fix an issue where some Windows systems in some configurations would only listen on IPv6 addresses on dual stack systems even though configured to listen on both IPv6 and IPv4 addresses. - Complete the fix for BZ 65181 - Correct constants used for Windows versions. Expand versions supported. The proposed release artefacts can be found at [1], and the build was done using tag [2]. The Apache Tomcat Native 1.2.30 release is [ ] Stable, go ahead and release [ ] Broken because of ... Thanks, Mark [1] https://dist.apache.org/repos/dist/dev/tomcat/tomcat-connectors/native/1.2.30 [2] https://gitbox.apache.org/repos/asf?p=tomcat-native.git;a=commit;h=8b1baaa1af07c07a9f44f9adb31b7dbdabd6ff39 - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch main updated: Simplify roles handling in user database realm
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new bfca3f8 Simplify roles handling in user database realm bfca3f8 is described below commit bfca3f8a0360dfaa1f90a01bcf3cb8b035b1dba7 Author: remm AuthorDate: Tue Jun 1 12:04:38 2021 +0200 Simplify roles handling in user database realm Remove undocumented live updating of roles, which is inconsistent with the other realms and likely impractical. Submitted by Carsten Klein. --- .../apache/catalina/realm/UserDatabaseRealm.java | 84 ++ webapps/docs/changelog.xml | 12 2 files changed, 16 insertions(+), 80 deletions(-) diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java b/java/org/apache/catalina/realm/UserDatabaseRealm.java index f30c24a..67d83ca 100644 --- a/java/org/apache/catalina/realm/UserDatabaseRealm.java +++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java @@ -18,8 +18,9 @@ package org.apache.catalina.realm; import java.security.Principal; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; -import java.util.List; +import java.util.Set; import javax.naming.Context; @@ -28,7 +29,6 @@ import org.apache.catalina.LifecycleException; import org.apache.catalina.Role; import org.apache.catalina.User; import org.apache.catalina.UserDatabase; -import org.apache.catalina.Wrapper; import org.apache.naming.ContextBindings; import org.apache.tomcat.util.ExceptionUtils; @@ -112,69 +112,6 @@ public class UserDatabaseRealm extends RealmBase { } -// - Public Methods - -/** - * Return true if the specified Principal has the specified - * security role, within the context of this Realm; otherwise return - * false. This implementation returns true if the - * User has the role, or if any Group that the - * User is a member of has the role. - * - * @param principal Principal for whom the role is to be checked - * @param role Security role to be checked - */ -@Override -public boolean hasRole(Wrapper wrapper, Principal principal, String role) { - -UserDatabase database = getUserDatabase(); -if (database == null) { -return false; -} - -// Check for a role alias defined in a element -if (wrapper != null) { -String realRole = wrapper.findSecurityReference(role); -if (realRole != null) { -role = realRole; -} -} -if (principal instanceof GenericPrincipal) { -GenericPrincipal gp = (GenericPrincipal) principal; -if (gp.getUserPrincipal() instanceof UserDatabasePrincipal) { -principal = database.findUser(gp.getName()); -} -} -if (!(principal instanceof User)) { -// Play nice with SSO and mixed Realms -// No need to pass the wrapper here because role mapping has been -// performed already a few lines above -return super.hasRole(null, principal, role); -} -if ("*".equals(role)) { -return true; -} else if (role == null) { -return false; -} -User user = (User) principal; -Role dbrole = database.findRole(role); -if (dbrole == null) { -return false; -} -if (user.isInRole(dbrole)) { -return true; -} -Iterator groups = user.getGroups(); -while (groups.hasNext()) { -Group group = groups.next(); -if (group.isInRole(dbrole)) { -return true; -} -} -return false; -} - - // -- Protected Methods @Override @@ -221,7 +158,7 @@ public class UserDatabaseRealm extends RealmBase { return null; } -List roles = new ArrayList<>(); +Set roles = new HashSet<>(); Iterator uroles = user.getRoles(); while (uroles.hasNext()) { Role role = uroles.next(); @@ -236,8 +173,7 @@ public class UserDatabaseRealm extends RealmBase { roles.add(role.getName()); } } -return new GenericPrincipal(username, roles, -new UserDatabasePrincipal(username)); +return new GenericPrincipal(username, new ArrayList(roles)); } @@ -306,16 +242,4 @@ public class UserDatabaseRealm extends RealmBase { // Release reference to our user database database = null; } - - -private static class UserDatabasePrincipal implements Principal { -private final String name; -private UserDatabasePrincipal(String na
[GitHub] [tomcat] rmaucher commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
rmaucher commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852001319 I pushed this in the main branch, but there the backport question since it clearly changes the behavior and it could hurt someone actually using the live updating capability. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] cklein05 commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
cklein05 commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852011219 Rémy, thanks for pushing this. Primarily, I like to get rid of class `UserDatabaseRealm.UserDatabasePrincipal`, which was introduced as a replacement for `org.apache.catalina.User`. Since `User` has a `getPassword()` method, it's no good candidate for being used as a `GenericPrincipal.userPrincipal`. So it was replaced by `UserDatabasePrincipal`, which is both private and not serializable. I'm working on a enhancement that also extends `GenericPrincipal` . For that enhancement, things would be easier without having `UserDatabasePrincipal` around. However, I understand that backporting may be a problem due to users using JMX to modify groups and roles in a live manner. Couldn't we instead only drop `UserDatabasePrincipal` (which acts like a tag interface) and leave the _live role lookup_ in place with older versioins/branches? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] cklein05 edited a comment on pull request #420: UserDatabaseRealm does not rely on cached roles only
cklein05 edited a comment on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852011219 Rémy, thanks for pushing this. Primarily, I like to get rid of class `UserDatabaseRealm.UserDatabasePrincipal`, which was introduced as a replacement for `org.apache.catalina.User`. Since `User` has a `getPassword()` method, it's no good candidate for being used as a `GenericPrincipal.userPrincipal`. So it was replaced by `UserDatabasePrincipal`, which is both private and not serializable. I'm working on a enhancement that also extends `GenericPrincipal` . For that enhancement, things would be easier without having `UserDatabasePrincipal` around. However, I understand that backporting may be a problem due to users using JMX to modify groups and roles in a live manner. Couldn't we instead only drop `UserDatabasePrincipal` (which acts like a tag interface) and leave the _live role lookup_ in place with older versions/branches? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch main updated: Fix BZ 65342. Correct regression in fix for BZ 65262.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new b142e36 Fix BZ 65342. Correct regression in fix for BZ 65262. b142e36 is described below commit b142e36d0cb92b066840565d28349804401eb72e Author: Mark Thomas AuthorDate: Tue Jun 1 13:53:09 2021 +0100 Fix BZ 65342. Correct regression in fix for BZ 65262. The 'trick' used in BZ 65262 to identify if the end point is using the default ServerEndpointConfig implementation depended on implementation details of WebSocket API provided by Tomcat. This trick failed when using other WebSocket API JARs. --- java/jakarta/websocket/server/ServerEndpointConfig.java | 12 java/org/apache/tomcat/websocket/WsSession.java | 4 +++- webapps/docs/changelog.xml | 5 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/java/jakarta/websocket/server/ServerEndpointConfig.java b/java/jakarta/websocket/server/ServerEndpointConfig.java index 4fb16d3..1b1a7e7 100644 --- a/java/jakarta/websocket/server/ServerEndpointConfig.java +++ b/java/jakarta/websocket/server/ServerEndpointConfig.java @@ -74,6 +74,18 @@ public interface ServerEndpointConfig extends EndpointConfig { private Builder(Class endpointClass, String path) { +if (endpointClass == null) { +throw new IllegalArgumentException("Endpoint class may not be null"); +} +if (path == null) { +throw new IllegalArgumentException("Path may not be null"); +} +if (path.isEmpty()) { +throw new IllegalArgumentException("Path may not be empty"); +} +if (path.charAt(0) != '/') { +throw new IllegalArgumentException("Path must start with '/'"); +} this.endpointClass = endpointClass; this.path = path; } diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index 31200bd..3f33099 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -75,7 +75,9 @@ public class WsSession implements Session { private static AtomicLong ids = new AtomicLong(0); static { -ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(null, null); +// Use fake end point and path. They are never used, they just need to +// be sufficient to pass the validation tests. +ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(Object.class, "/"); ServerEndpointConfig sec = builder.build(); SEC_CONFIGURATOR_USES_IMPL_DEFAULT = sec.getConfigurator().getClass().equals(DefaultServerEndpointConfigurator.class); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 3145d04..701a4dc 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -238,6 +238,11 @@ Update the web-fragment.xml included in tomcat-websocket.jarto use the Servlet 5.0 schema. (markt) + +65342: Correct a regression introduced with the fix for +65262 that meant Tomcat's WebSocket implementation would only +work with Tomcat's implementation of the Jakarta WebSocket API. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 10.0.x updated: Fix BZ 65342. Correct regression in fix for BZ 65262.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.0.x by this push: new 48cbc0f Fix BZ 65342. Correct regression in fix for BZ 65262. 48cbc0f is described below commit 48cbc0fc28cb3f80d09135fa07181c0b51454ba9 Author: Mark Thomas AuthorDate: Tue Jun 1 13:53:09 2021 +0100 Fix BZ 65342. Correct regression in fix for BZ 65262. The 'trick' used in BZ 65262 to identify if the end point is using the default ServerEndpointConfig implementation depended on implementation details of WebSocket API provided by Tomcat. This trick failed when using other WebSocket API JARs. --- java/jakarta/websocket/server/ServerEndpointConfig.java | 12 java/org/apache/tomcat/websocket/WsSession.java | 4 +++- webapps/docs/changelog.xml | 5 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/java/jakarta/websocket/server/ServerEndpointConfig.java b/java/jakarta/websocket/server/ServerEndpointConfig.java index 4fb16d3..1b1a7e7 100644 --- a/java/jakarta/websocket/server/ServerEndpointConfig.java +++ b/java/jakarta/websocket/server/ServerEndpointConfig.java @@ -74,6 +74,18 @@ public interface ServerEndpointConfig extends EndpointConfig { private Builder(Class endpointClass, String path) { +if (endpointClass == null) { +throw new IllegalArgumentException("Endpoint class may not be null"); +} +if (path == null) { +throw new IllegalArgumentException("Path may not be null"); +} +if (path.isEmpty()) { +throw new IllegalArgumentException("Path may not be empty"); +} +if (path.charAt(0) != '/') { +throw new IllegalArgumentException("Path must start with '/'"); +} this.endpointClass = endpointClass; this.path = path; } diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index 0120845..3a37d66 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -75,7 +75,9 @@ public class WsSession implements Session { private static AtomicLong ids = new AtomicLong(0); static { -ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(null, null); +// Use fake end point and path. They are never used, they just need to +// be sufficient to pass the validation tests. +ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(Object.class, "/"); ServerEndpointConfig sec = builder.build(); SEC_CONFIGURATOR_USES_IMPL_DEFAULT = sec.getConfigurator().getClass().equals(DefaultServerEndpointConfigurator.class); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index ba7c4b2..5e74509 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -191,6 +191,11 @@ Update the web-fragment.xml included in tomcat-websocket.jarto use the Servlet 5.0 schema. (markt) + +65342: Correct a regression introduced with the fix for +65262 that meant Tomcat's WebSocket implementation would only +work with Tomcat's implementation of the Jakarta WebSocket API. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 9.0.x updated: Fix BZ 65342. Correct regression in fix for BZ 65262.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new b0570e2 Fix BZ 65342. Correct regression in fix for BZ 65262. b0570e2 is described below commit b0570e20128a6bc314d552a40f46cbdeaa9a7dea Author: Mark Thomas AuthorDate: Tue Jun 1 13:53:09 2021 +0100 Fix BZ 65342. Correct regression in fix for BZ 65262. The 'trick' used in BZ 65262 to identify if the end point is using the default ServerEndpointConfig implementation depended on implementation details of WebSocket API provided by Tomcat. This trick failed when using other WebSocket API JARs. --- java/javax/websocket/server/ServerEndpointConfig.java | 12 java/org/apache/tomcat/websocket/WsSession.java | 4 +++- webapps/docs/changelog.xml| 5 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/java/javax/websocket/server/ServerEndpointConfig.java b/java/javax/websocket/server/ServerEndpointConfig.java index fa56ce4..6070a36 100644 --- a/java/javax/websocket/server/ServerEndpointConfig.java +++ b/java/javax/websocket/server/ServerEndpointConfig.java @@ -74,6 +74,18 @@ public interface ServerEndpointConfig extends EndpointConfig { private Builder(Class endpointClass, String path) { +if (endpointClass == null) { +throw new IllegalArgumentException("Endpoint class may not be null"); +} +if (path == null) { +throw new IllegalArgumentException("Path may not be null"); +} +if (path.isEmpty()) { +throw new IllegalArgumentException("Path may not be empty"); +} +if (path.charAt(0) != '/') { +throw new IllegalArgumentException("Path must start with '/'"); +} this.endpointClass = endpointClass; this.path = path; } diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index c090c20..8e83d1c 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -74,7 +74,9 @@ public class WsSession implements Session { private static AtomicLong ids = new AtomicLong(0); static { -ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(null, null); +// Use fake end point and path. They are never used, they just need to +// be sufficient to pass the validation tests. +ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(Object.class, "/"); ServerEndpointConfig sec = builder.build(); SEC_CONFIGURATOR_USES_IMPL_DEFAULT = sec.getConfigurator().getClass().equals(DefaultServerEndpointConfigurator.class); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 6a2f068..ef85296 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -199,6 +199,11 @@ size was an exact multiple of 8192. Based on a patch provided by Saksham Verma. (markt) + +65342: Correct a regression introduced with the fix for +65262 that meant Tomcat's WebSocket implementation would only +work with Tomcat's implementation of the Java EE WebSocket API. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch 8.5.x updated: Fix BZ 65342. Correct regression in fix for BZ 65262.
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/8.5.x by this push: new c39dd74 Fix BZ 65342. Correct regression in fix for BZ 65262. c39dd74 is described below commit c39dd7460413a9d9a9c1b5c3b680827b5dcd63b7 Author: Mark Thomas AuthorDate: Tue Jun 1 13:53:09 2021 +0100 Fix BZ 65342. Correct regression in fix for BZ 65262. The 'trick' used in BZ 65262 to identify if the end point is using the default ServerEndpointConfig implementation depended on implementation details of WebSocket API provided by Tomcat. This trick failed when using other WebSocket API JARs. --- java/javax/websocket/server/ServerEndpointConfig.java | 12 java/org/apache/tomcat/websocket/WsSession.java | 4 +++- webapps/docs/changelog.xml| 5 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/java/javax/websocket/server/ServerEndpointConfig.java b/java/javax/websocket/server/ServerEndpointConfig.java index 696e519..b878095 100644 --- a/java/javax/websocket/server/ServerEndpointConfig.java +++ b/java/javax/websocket/server/ServerEndpointConfig.java @@ -75,6 +75,18 @@ public interface ServerEndpointConfig extends EndpointConfig { private Builder(Class endpointClass, String path) { +if (endpointClass == null) { +throw new IllegalArgumentException("Endpoint class may not be null"); +} +if (path == null) { +throw new IllegalArgumentException("Path may not be null"); +} +if (path.isEmpty()) { +throw new IllegalArgumentException("Path may not be empty"); +} +if (path.charAt(0) != '/') { +throw new IllegalArgumentException("Path must start with '/'"); +} this.endpointClass = endpointClass; this.path = path; } diff --git a/java/org/apache/tomcat/websocket/WsSession.java b/java/org/apache/tomcat/websocket/WsSession.java index c090c20..8e83d1c 100644 --- a/java/org/apache/tomcat/websocket/WsSession.java +++ b/java/org/apache/tomcat/websocket/WsSession.java @@ -74,7 +74,9 @@ public class WsSession implements Session { private static AtomicLong ids = new AtomicLong(0); static { -ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(null, null); +// Use fake end point and path. They are never used, they just need to +// be sufficient to pass the validation tests. +ServerEndpointConfig.Builder builder = ServerEndpointConfig.Builder.create(Object.class, "/"); ServerEndpointConfig sec = builder.build(); SEC_CONFIGURATOR_USES_IMPL_DEFAULT = sec.getConfigurator().getClass().equals(DefaultServerEndpointConfigurator.class); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 2a6e035..061575c 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -187,6 +187,11 @@ size was an exact multiple of 8192. Based on a patch provided by Saksham Verma. (markt) + +65342: Correct a regression introduced with the fix for +65262 that meant Tomcat's WebSocket implementation would only +work with Tomcat's implementation of the Java EE WebSocket API. (markt) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] rmaucher commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
rmaucher commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852172392 Ah ok, I did that, since getPassword was a problem that needed fixing. However, I think this does not work and I'll have to revert this: I don't see how groups are still handled, ultimately this really needs access to the User object and its own override implementation. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch main updated (b142e36 -> ebdbb96)
This is an automated email from the ASF dual-hosted git repository. remm pushed a change to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git. from b142e36 Fix BZ 65342. Correct regression in fix for BZ 65262. add ebdbb96 Revert changes for now No new revisions were added by this update. Summary of changes: .../apache/catalina/realm/UserDatabaseRealm.java | 84 -- webapps/docs/changelog.xml | 12 2 files changed, 80 insertions(+), 16 deletions(-) - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] rmaucher commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
rmaucher commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852194203 I reverted to examine things a bit more. I think groups should still work since the complete role list is constructed with their content in getPrincipal, however it also means things are very static: even if you take out a user from the admin group (for example), it will stay there until its session ends, or if you add a new role to a "manager" group, then it will take effect "eventually" and break things in the meantime. So it doesn't seem to me the "liveness" of the feature is so "undocumented": it should really be supported otherwise its design doesn't make much sense. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch main updated: Ignore duplicate roles
This is an automated email from the ASF dual-hosted git repository. remm pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 1df0f91 Ignore duplicate roles 1df0f91 is described below commit 1df0f9136c5f545626cd900d421adcf30fb75665 Author: remm AuthorDate: Tue Jun 1 17:05:31 2021 +0200 Ignore duplicate roles Submitted by Carsten Klein. --- java/org/apache/catalina/realm/UserDatabaseRealm.java | 7 --- webapps/docs/changelog.xml| 5 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java b/java/org/apache/catalina/realm/UserDatabaseRealm.java index f30c24a..09d5608 100644 --- a/java/org/apache/catalina/realm/UserDatabaseRealm.java +++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java @@ -18,8 +18,9 @@ package org.apache.catalina.realm; import java.security.Principal; import java.util.ArrayList; +import java.util.HashSet; import java.util.Iterator; -import java.util.List; +import java.util.Set; import javax.naming.Context; @@ -221,7 +222,7 @@ public class UserDatabaseRealm extends RealmBase { return null; } -List roles = new ArrayList<>(); +Set roles = new HashSet<>(); Iterator uroles = user.getRoles(); while (uroles.hasNext()) { Role role = uroles.next(); @@ -236,7 +237,7 @@ public class UserDatabaseRealm extends RealmBase { roles.add(role.getName()); } } -return new GenericPrincipal(username, roles, +return new GenericPrincipal(username, new ArrayList(roles), new UserDatabasePrincipal(username)); } diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 05c57ff..a26cc8c 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -160,6 +160,11 @@ AprLifecycleListener does not show dev version suffix for libtcnative and libapr. (michaelo) + +Ignore duplicates when collecting the effective roles list from Roles +and Groups in UserDatabaseRealm.getPrincipal(String). +Submitted by Carsten Klein. (remm) + - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] cklein05 commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
cklein05 commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852202676 Yes, it's static, but most other realms behave the same. You'll need to re-login in order to have role and group changes in effect. So, me and Mark were thinking removal of the live feature is appropriate. Maybe there *was* an idea of making the XML-based UserDatabase a live updatable full blown database in the early days of Tomcat. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[tomcat] branch main updated: Fix some indentation issues
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new ce8b5ae Fix some indentation issues ce8b5ae is described below commit ce8b5ae8b34fb9e2de463cf00b0d0e07fc9259fb Author: Mark Thomas AuthorDate: Tue Jun 1 19:29:29 2021 +0100 Fix some indentation issues Helps readability but mainly to trigger a CI build --- java/jakarta/ejb/EJB.java | 14 +++--- java/jakarta/el/BeanELResolver.java | 6 ++ java/jakarta/el/ExpressionFactory.java| 3 +-- java/jakarta/el/ListELResolver.java | 3 +-- java/jakarta/el/Util.java | 20 java/jakarta/persistence/PersistenceContext.java | 10 +- java/jakarta/persistence/PersistenceProperty.java | 4 ++-- java/jakarta/persistence/PersistenceUnit.java | 4 ++-- res/checkstyle/checkstyle.xml | 2 +- 9 files changed, 29 insertions(+), 37 deletions(-) diff --git a/java/jakarta/ejb/EJB.java b/java/jakarta/ejb/EJB.java index 65f9e8f..82b9bfd 100644 --- a/java/jakarta/ejb/EJB.java +++ b/java/jakarta/ejb/EJB.java @@ -27,11 +27,11 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) public @interface EJB { - String name() default ""; - String description() default ""; - @SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification - Class beanInterface() default java.lang.Object.class; - String beanName() default ""; - String mappedName() default ""; - String lookup() default ""; +String name() default ""; +String description() default ""; +@SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification +Class beanInterface() default java.lang.Object.class; +String beanName() default ""; +String mappedName() default ""; +String lookup() default ""; } diff --git a/java/jakarta/el/BeanELResolver.java b/java/jakarta/el/BeanELResolver.java index 8eed486..8a47a25 100644 --- a/java/jakarta/el/BeanELResolver.java +++ b/java/jakarta/el/BeanELResolver.java @@ -37,8 +37,7 @@ import java.util.concurrent.ConcurrentHashMap; public class BeanELResolver extends ELResolver { private static final int CACHE_SIZE; -private static final String CACHE_SIZE_PROP = -"org.apache.el.BeanELResolver.CACHE_SIZE"; +private static final String CACHE_SIZE_PROP = "org.apache.el.BeanELResolver.CACHE_SIZE"; static { String cacheSizeStr; @@ -53,8 +52,7 @@ public class BeanELResolver extends ELResolver { private final boolean readOnly; -private final ConcurrentCache cache = -new ConcurrentCache<>(CACHE_SIZE); +private final ConcurrentCache cache = new ConcurrentCache<>(CACHE_SIZE); public BeanELResolver() { this.readOnly = false; diff --git a/java/jakarta/el/ExpressionFactory.java b/java/jakarta/el/ExpressionFactory.java index d9a83df..aeacc00 100644 --- a/java/jakarta/el/ExpressionFactory.java +++ b/java/jakarta/el/ExpressionFactory.java @@ -42,8 +42,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; */ public abstract class ExpressionFactory { -private static final boolean IS_SECURITY_ENABLED = -(System.getSecurityManager() != null); +private static final boolean IS_SECURITY_ENABLED = (System.getSecurityManager() != null); private static final String PROPERTY_NAME = "jakarta.el.ExpressionFactory"; diff --git a/java/jakarta/el/ListELResolver.java b/java/jakarta/el/ListELResolver.java index 03c03d4..3b0bc5e 100644 --- a/java/jakarta/el/ListELResolver.java +++ b/java/jakarta/el/ListELResolver.java @@ -28,8 +28,7 @@ public class ListELResolver extends ELResolver { private final boolean readOnly; -private static final Class UNMODIFIABLE = -Collections.unmodifiableList(new ArrayList<>()).getClass(); +private static final Class UNMODIFIABLE = Collections.unmodifiableList(new ArrayList<>()).getClass(); public ListELResolver() { this.readOnly = false; diff --git a/java/jakarta/el/Util.java b/java/jakarta/el/Util.java index 3051a7b..66a1ca5 100644 --- a/java/jakarta/el/Util.java +++ b/java/jakarta/el/Util.java @@ -363,7 +363,7 @@ class Util { throw new MethodNotFoundException(message( null, "util.method.ambiguous", clazz, name, paramString(paramTypes))); -} +} } // Handle case where no match at all was found @@ -422,12 +422,11 @@ class Util { } for (Wrapper c : candidates) { - if (c.getParameterTypes()[nonMatchIndex] == - paramTypes[nonMatchIndex]) { - // Methods have different non-matching parameters -
[tomcat] branch 10.0.x updated: Fix some indentation issues
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/10.0.x by this push: new 8997577 Fix some indentation issues 8997577 is described below commit 8997577ba0c5d60bd7ab01760545e3d834abbc1b Author: Mark Thomas AuthorDate: Tue Jun 1 19:29:29 2021 +0100 Fix some indentation issues Helps readability but mainly to trigger a CI build --- java/jakarta/ejb/EJB.java | 14 +++--- java/jakarta/el/BeanELResolver.java | 6 ++ java/jakarta/el/ExpressionFactory.java| 3 +-- java/jakarta/el/ListELResolver.java | 3 +-- java/jakarta/el/Util.java | 20 java/jakarta/persistence/PersistenceContext.java | 10 +- java/jakarta/persistence/PersistenceProperty.java | 4 ++-- java/jakarta/persistence/PersistenceUnit.java | 4 ++-- res/checkstyle/checkstyle.xml | 2 +- 9 files changed, 29 insertions(+), 37 deletions(-) diff --git a/java/jakarta/ejb/EJB.java b/java/jakarta/ejb/EJB.java index 65f9e8f..82b9bfd 100644 --- a/java/jakarta/ejb/EJB.java +++ b/java/jakarta/ejb/EJB.java @@ -27,11 +27,11 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) public @interface EJB { - String name() default ""; - String description() default ""; - @SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification - Class beanInterface() default java.lang.Object.class; - String beanName() default ""; - String mappedName() default ""; - String lookup() default ""; +String name() default ""; +String description() default ""; +@SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification +Class beanInterface() default java.lang.Object.class; +String beanName() default ""; +String mappedName() default ""; +String lookup() default ""; } diff --git a/java/jakarta/el/BeanELResolver.java b/java/jakarta/el/BeanELResolver.java index 7525e06..1226873 100644 --- a/java/jakarta/el/BeanELResolver.java +++ b/java/jakarta/el/BeanELResolver.java @@ -37,8 +37,7 @@ import java.util.concurrent.ConcurrentHashMap; public class BeanELResolver extends ELResolver { private static final int CACHE_SIZE; -private static final String CACHE_SIZE_PROP = -"org.apache.el.BeanELResolver.CACHE_SIZE"; +private static final String CACHE_SIZE_PROP = "org.apache.el.BeanELResolver.CACHE_SIZE"; static { String cacheSizeStr; @@ -53,8 +52,7 @@ public class BeanELResolver extends ELResolver { private final boolean readOnly; -private final ConcurrentCache cache = -new ConcurrentCache<>(CACHE_SIZE); +private final ConcurrentCache cache = new ConcurrentCache<>(CACHE_SIZE); public BeanELResolver() { this.readOnly = false; diff --git a/java/jakarta/el/ExpressionFactory.java b/java/jakarta/el/ExpressionFactory.java index 67b3556..649b77c 100644 --- a/java/jakarta/el/ExpressionFactory.java +++ b/java/jakarta/el/ExpressionFactory.java @@ -42,8 +42,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; */ public abstract class ExpressionFactory { -private static final boolean IS_SECURITY_ENABLED = -(System.getSecurityManager() != null); +private static final boolean IS_SECURITY_ENABLED = (System.getSecurityManager() != null); private static final String PROPERTY_NAME = "jakarta.el.ExpressionFactory"; diff --git a/java/jakarta/el/ListELResolver.java b/java/jakarta/el/ListELResolver.java index 03c03d4..3b0bc5e 100644 --- a/java/jakarta/el/ListELResolver.java +++ b/java/jakarta/el/ListELResolver.java @@ -28,8 +28,7 @@ public class ListELResolver extends ELResolver { private final boolean readOnly; -private static final Class UNMODIFIABLE = -Collections.unmodifiableList(new ArrayList<>()).getClass(); +private static final Class UNMODIFIABLE = Collections.unmodifiableList(new ArrayList<>()).getClass(); public ListELResolver() { this.readOnly = false; diff --git a/java/jakarta/el/Util.java b/java/jakarta/el/Util.java index 3051a7b..66a1ca5 100644 --- a/java/jakarta/el/Util.java +++ b/java/jakarta/el/Util.java @@ -363,7 +363,7 @@ class Util { throw new MethodNotFoundException(message( null, "util.method.ambiguous", clazz, name, paramString(paramTypes))); -} +} } // Handle case where no match at all was found @@ -422,12 +422,11 @@ class Util { } for (Wrapper c : candidates) { - if (c.getParameterTypes()[nonMatchIndex] == - paramTypes[nonMatchIndex]) { - // Methods have different non-matching parameters -
[tomcat] branch 9.0.x updated: Fix some indentation issues
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/9.0.x by this push: new 85710e5 Fix some indentation issues 85710e5 is described below commit 85710e5333c370a002e296095f36ce9c3cc801a8 Author: Mark Thomas AuthorDate: Tue Jun 1 19:29:29 2021 +0100 Fix some indentation issues Helps readability but mainly to trigger a CI build --- java/javax/ejb/EJB.java | 14 +++--- java/javax/el/BeanELResolver.java | 6 ++ java/javax/el/ExpressionFactory.java| 3 +-- java/javax/el/ListELResolver.java | 3 +-- java/javax/el/Util.java | 20 java/javax/persistence/PersistenceContext.java | 10 +- java/javax/persistence/PersistenceProperty.java | 4 ++-- java/javax/persistence/PersistenceUnit.java | 4 ++-- res/checkstyle/checkstyle.xml | 2 +- 9 files changed, 29 insertions(+), 37 deletions(-) diff --git a/java/javax/ejb/EJB.java b/java/javax/ejb/EJB.java index 2b16782..0ab4f17 100644 --- a/java/javax/ejb/EJB.java +++ b/java/javax/ejb/EJB.java @@ -27,11 +27,11 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) public @interface EJB { - String name() default ""; - String description() default ""; - @SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification - Class beanInterface() default java.lang.Object.class; - String beanName() default ""; - String mappedName() default ""; - String lookup() default ""; +String name() default ""; +String description() default ""; +@SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification +Class beanInterface() default java.lang.Object.class; +String beanName() default ""; +String mappedName() default ""; +String lookup() default ""; } diff --git a/java/javax/el/BeanELResolver.java b/java/javax/el/BeanELResolver.java index 50c7e13..9534dd3 100644 --- a/java/javax/el/BeanELResolver.java +++ b/java/javax/el/BeanELResolver.java @@ -37,8 +37,7 @@ import java.util.concurrent.ConcurrentHashMap; public class BeanELResolver extends ELResolver { private static final int CACHE_SIZE; -private static final String CACHE_SIZE_PROP = -"org.apache.el.BeanELResolver.CACHE_SIZE"; +private static final String CACHE_SIZE_PROP = "org.apache.el.BeanELResolver.CACHE_SIZE"; static { String cacheSizeStr; @@ -53,8 +52,7 @@ public class BeanELResolver extends ELResolver { private final boolean readOnly; -private final ConcurrentCache cache = -new ConcurrentCache<>(CACHE_SIZE); +private final ConcurrentCache cache = new ConcurrentCache<>(CACHE_SIZE); public BeanELResolver() { this.readOnly = false; diff --git a/java/javax/el/ExpressionFactory.java b/java/javax/el/ExpressionFactory.java index d98dbfd..607d161 100644 --- a/java/javax/el/ExpressionFactory.java +++ b/java/javax/el/ExpressionFactory.java @@ -42,8 +42,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; */ public abstract class ExpressionFactory { -private static final boolean IS_SECURITY_ENABLED = -(System.getSecurityManager() != null); +private static final boolean IS_SECURITY_ENABLED = (System.getSecurityManager() != null); private static final String PROPERTY_NAME = "javax.el.ExpressionFactory"; diff --git a/java/javax/el/ListELResolver.java b/java/javax/el/ListELResolver.java index cd88620..50a0ff0 100644 --- a/java/javax/el/ListELResolver.java +++ b/java/javax/el/ListELResolver.java @@ -28,8 +28,7 @@ public class ListELResolver extends ELResolver { private final boolean readOnly; -private static final Class UNMODIFIABLE = -Collections.unmodifiableList(new ArrayList<>()).getClass(); +private static final Class UNMODIFIABLE = Collections.unmodifiableList(new ArrayList<>()).getClass(); public ListELResolver() { this.readOnly = false; diff --git a/java/javax/el/Util.java b/java/javax/el/Util.java index a7573ac..c478e54 100644 --- a/java/javax/el/Util.java +++ b/java/javax/el/Util.java @@ -363,7 +363,7 @@ class Util { throw new MethodNotFoundException(message( null, "util.method.ambiguous", clazz, name, paramString(paramTypes))); -} +} } // Handle case where no match at all was found @@ -422,12 +422,11 @@ class Util { } for (Wrapper c : candidates) { - if (c.getParameterTypes()[nonMatchIndex] == - paramTypes[nonMatchIndex]) { - // Methods have different non-matching parameters - // Result is ambiguous - return null
[tomcat] branch 8.5.x updated: Fix some indentation issues
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/8.5.x by this push: new 73f7a18 Fix some indentation issues 73f7a18 is described below commit 73f7a1801a86d37d8def039084626eb2c795e553 Author: Mark Thomas AuthorDate: Tue Jun 1 19:29:29 2021 +0100 Fix some indentation issues Helps readability but mainly to trigger a CI build --- java/javax/ejb/EJB.java | 14 +++--- java/javax/el/BeanELResolver.java | 6 ++ java/javax/el/ExpressionFactory.java| 3 +-- java/javax/el/ListELResolver.java | 3 +-- java/javax/el/Util.java | 20 java/javax/persistence/PersistenceContext.java | 10 +- java/javax/persistence/PersistenceProperty.java | 4 ++-- java/javax/persistence/PersistenceUnit.java | 4 ++-- res/checkstyle/checkstyle.xml | 9 - 9 files changed, 36 insertions(+), 37 deletions(-) diff --git a/java/javax/ejb/EJB.java b/java/javax/ejb/EJB.java index 2b16782..0ab4f17 100644 --- a/java/javax/ejb/EJB.java +++ b/java/javax/ejb/EJB.java @@ -27,11 +27,11 @@ import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) public @interface EJB { - String name() default ""; - String description() default ""; - @SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification - Class beanInterface() default java.lang.Object.class; - String beanName() default ""; - String mappedName() default ""; - String lookup() default ""; +String name() default ""; +String description() default ""; +@SuppressWarnings("rawtypes") // Can't use Class because API needs to match specification +Class beanInterface() default java.lang.Object.class; +String beanName() default ""; +String mappedName() default ""; +String lookup() default ""; } diff --git a/java/javax/el/BeanELResolver.java b/java/javax/el/BeanELResolver.java index 3f4b454..74316a3 100644 --- a/java/javax/el/BeanELResolver.java +++ b/java/javax/el/BeanELResolver.java @@ -37,8 +37,7 @@ import java.util.concurrent.ConcurrentHashMap; public class BeanELResolver extends ELResolver { private static final int CACHE_SIZE; -private static final String CACHE_SIZE_PROP = -"org.apache.el.BeanELResolver.CACHE_SIZE"; +private static final String CACHE_SIZE_PROP = "org.apache.el.BeanELResolver.CACHE_SIZE"; static { String cacheSizeStr; @@ -59,8 +58,7 @@ public class BeanELResolver extends ELResolver { private final boolean readOnly; -private final ConcurrentCache cache = -new ConcurrentCache<>(CACHE_SIZE); +private final ConcurrentCache cache = new ConcurrentCache<>(CACHE_SIZE); public BeanELResolver() { this.readOnly = false; diff --git a/java/javax/el/ExpressionFactory.java b/java/javax/el/ExpressionFactory.java index 59ee53e..3aa15d8 100644 --- a/java/javax/el/ExpressionFactory.java +++ b/java/javax/el/ExpressionFactory.java @@ -43,8 +43,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; */ public abstract class ExpressionFactory { -private static final boolean IS_SECURITY_ENABLED = -(System.getSecurityManager() != null); +private static final boolean IS_SECURITY_ENABLED = (System.getSecurityManager() != null); private static final String PROPERTY_NAME = "javax.el.ExpressionFactory"; diff --git a/java/javax/el/ListELResolver.java b/java/javax/el/ListELResolver.java index cd88620..50a0ff0 100644 --- a/java/javax/el/ListELResolver.java +++ b/java/javax/el/ListELResolver.java @@ -28,8 +28,7 @@ public class ListELResolver extends ELResolver { private final boolean readOnly; -private static final Class UNMODIFIABLE = -Collections.unmodifiableList(new ArrayList<>()).getClass(); +private static final Class UNMODIFIABLE = Collections.unmodifiableList(new ArrayList<>()).getClass(); public ListELResolver() { this.readOnly = false; diff --git a/java/javax/el/Util.java b/java/javax/el/Util.java index 43b3642..7a30b75 100644 --- a/java/javax/el/Util.java +++ b/java/javax/el/Util.java @@ -365,7 +365,7 @@ class Util { throw new MethodNotFoundException(message( null, "util.method.ambiguous", clazz, name, paramString(paramTypes))); -} +} } // Handle case where no match at all was found @@ -424,12 +424,11 @@ class Util { } for (Wrapper c : candidates) { - if (c.getParameterTypes()[nonMatchIndex] == - paramTypes[nonMatchIndex]) { - // Methods have different non-matching parameters - // Result is ambiguous - retu
[GitHub] [tomcat] rmaucher commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
rmaucher commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852392506 Well, actually the MemoryUserDatabase will auto reload. I caught up to the thread on the user mailing list, which I didn't really pay attention to last week (I was away for a part of it). The problem is the whole point of the user database is to have live updating. If it's now ok to remove that feature, then the user db as a whole can (should) be removed since the classic memory realm would do just as well. I'm really sorry for that fake principal trick that was created out of the need to hide away the objects and the password. I'll try to come up with something. Would using a UserDatabasePrincipal that would extend GenericPrincipal instead work out for you ? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
Re: [VOTE] Release Apache Tomcat Native 1.2.30
On Tue, Jun 1, 2021 at 2:53 AM Mark Thomas wrote: > Resending with correct subject line... > > Version 1.2.30 includes the following changes compared to 1.2.28 > > - Fix an issue where some Windows systems in some configurations would >only listen on IPv6 addresses on dual stack systems even though >configured to listen on both IPv6 and IPv4 addresses. > > - Complete the fix for BZ 65181 > > - Correct constants used for Windows versions. Expand versions >supported. > > The proposed release artefacts can be found at [1], > and the build was done using tag [2]. > > The Apache Tomcat Native 1.2.30 release is > [X] Stable, go ahead and release > [ ] Broken because of ... > +1 Igal > > Thanks, > > Mark > > > [1] > > https://dist.apache.org/repos/dist/dev/tomcat/tomcat-connectors/native/1.2.30 > [2] > > https://gitbox.apache.org/repos/asf?p=tomcat-native.git;a=commit;h=8b1baaa1af07c07a9f44f9adb31b7dbdabd6ff39 > > - > To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org > For additional commands, e-mail: dev-h...@tomcat.apache.org > >
[tomcat] branch main updated: Fix IDE nag - can use <> here
This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tomcat.git The following commit(s) were added to refs/heads/main by this push: new 3af4901 Fix IDE nag - can use <> here 3af4901 is described below commit 3af490149c40ec115ee71e962521fb71af7df64e Author: Mark Thomas AuthorDate: Tue Jun 1 20:53:42 2021 +0100 Fix IDE nag - can use <> here --- java/org/apache/catalina/realm/UserDatabaseRealm.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/org/apache/catalina/realm/UserDatabaseRealm.java b/java/org/apache/catalina/realm/UserDatabaseRealm.java index 09d5608..bffb978 100644 --- a/java/org/apache/catalina/realm/UserDatabaseRealm.java +++ b/java/org/apache/catalina/realm/UserDatabaseRealm.java @@ -237,8 +237,7 @@ public class UserDatabaseRealm extends RealmBase { roles.add(role.getName()); } } -return new GenericPrincipal(username, new ArrayList(roles), -new UserDatabasePrincipal(username)); +return new GenericPrincipal(username, new ArrayList<>(roles), new UserDatabasePrincipal(username)); } - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] markt-asf commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
markt-asf commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852405246 I'm fairly sure extending Generic Principal would work. Tx. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
[GitHub] [tomcat] cklein05 commented on pull request #420: UserDatabaseRealm does not rely on cached roles only
cklein05 commented on pull request #420: URL: https://github.com/apache/tomcat/pull/420#issuecomment-852735518 For me, it's not about removing UserDatabaseRealm's live role querying feature. It's just that I need a way to deal with the UserDatabasePrincipal in my enhancement. Removing this class is the simplest solution among others. A simple (default visible) boolean flag `userDatabasePrincipal` in GenericPrincipal will do the job as well (so that the UserDatabaseRealm can simply check that boolean value instead of the `instanceof UserDatabasePrincipal` test in line 144). However, extending GenericPrincipal is another option that's as good as the other (maybe it's the more clean solution from an OOP point of view). I agree with any of these options, since in then end (in both ends) I don't have to touch that class anymore when implementing my enhancement. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org