[tomcat] branch main updated: LocalString_xx.properties are UTF-8 when filtered

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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.

2021-06-01 Thread markt
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

2021-06-01 Thread bugzilla
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

2021-06-01 Thread GitBox


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

2021-06-01 Thread markt
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)

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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/

2021-06-01 Thread markt
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

2021-06-01 Thread buildbot
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/

2021-06-01 Thread markt
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

2021-06-01 Thread Mark Thomas

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

2021-06-01 Thread remm
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

2021-06-01 Thread GitBox


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

2021-06-01 Thread GitBox


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

2021-06-01 Thread GitBox


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.

2021-06-01 Thread markt
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.

2021-06-01 Thread markt
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.

2021-06-01 Thread markt
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.

2021-06-01 Thread markt
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

2021-06-01 Thread GitBox


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)

2021-06-01 Thread remm
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

2021-06-01 Thread GitBox


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

2021-06-01 Thread remm
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

2021-06-01 Thread GitBox


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

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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

2021-06-01 Thread markt
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

2021-06-01 Thread GitBox


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

2021-06-01 Thread Igal Sapir
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

2021-06-01 Thread markt
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

2021-06-01 Thread GitBox


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

2021-06-01 Thread GitBox


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